@charset "UTF-8";
/*!
Theme Name: Custom Theme
Theme URI: https://www.vividcreative.com
Author: Vivid Creative
Author URI: https://www.vividcreative.com
Description: Custom Theme for Client
Version: 1.0.0
Text Domain: customtheme
Tags: custom-theme
*/
/**
 * Foundation for Sites
 * Version 6.7.4
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible; }

pre {
  font-family: monospace, monospace;
  font-size: 1em; }

a {
  background-color: transparent; }

abbr[title] {
  border-bottom: 0;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; }

b,
strong {
  font-weight: bolder; }

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a,
input {
  overflow: visible; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a,
select {
  text-transform: none; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

button::-moz-focus-inner, .button::-moz-focus-inner, #header #main-menu ul li.primary a::-moz-focus-inner, body.scrolled #header.dark-text #main-menu ul li.primary a::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button:-moz-focusring, .button:-moz-focusring, #header #main-menu ul li.primary a:-moz-focusring, body.scrolled #header.dark-text #main-menu ul li.primary a:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

fieldset {
  padding: 0.35em 0.75em 0.625em; }

legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal; }

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0; }

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

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

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

[data-whatintent="mouse"] *, [data-whatintent="mouse"] *:focus,
[data-whatintent="touch"] *,
[data-whatintent="touch"] *:focus,
[data-whatinput="mouse"] *,
[data-whatinput="mouse"] *:focus,
[data-whatinput="touch"] *,
[data-whatinput="touch"] *:focus {
  outline: none; }

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none; }

.foundation-mq {
  font-family: "small=0em&medium=62.5em&large=75em&xlarge=90em&xxlarge=105em"; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: Brandon, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button, [data-whatinput='mouse'] .button, [data-whatinput='mouse'] #header #main-menu ul li.primary a, #header #main-menu ul li.primary [data-whatinput='mouse'] a, [data-whatinput='mouse'] body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary [data-whatinput='mouse'] a {
    outline: 0; }

pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

button, .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

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

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #c1c1d0;
  border-radius: 0;
  background-color: #fefefe;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #545471;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #c1c1d0;
            box-shadow: 0 0 5px #c1c1d0;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #FBFBFC;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

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

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

:-ms-input-placeholder {
  color: #c1c1d0; }

::-ms-input-placeholder {
  color: #c1c1d0; }

::placeholder {
  color: #c1c1d0; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000000; }
  label.middle {
    margin: 0 0 1rem;
    line-height: 1.5;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #000000; }

.input-group {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .input-group > :first-child, .input-group > :first-child.input-group-button > * {
    border-radius: 0 0 0 0; }
  .input-group > :last-child, .input-group > :last-child.input-group-button > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button, .input-group-button .button, .input-group-button #header #main-menu ul li.primary a, #header #main-menu ul li.primary .input-group-button a, .input-group-button body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .input-group-button a,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #c1c1d0;
  background: #FBFBFC;
  color: #000000;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button .button,
  .input-group-button #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary .input-group-button a,
  .input-group-button body.scrolled #header.dark-text #main-menu ul li.primary a,
  body.scrolled #header.dark-text #main-menu ul li.primary .input-group-button a,
  .input-group-button label {
    -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
            align-self: stretch;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

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

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #c1c1d0; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #c1c1d0;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%2884, 84, 113%29"></polygon></svg>');
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #545471;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #c1c1d0;
            box-shadow: 0 0 5px #c1c1d0;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  select:disabled {
    background-color: #FBFBFC;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }
  select:not([multiple]) {
    padding-top: 0;
    padding-bottom: 0; }

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::-moz-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

.is-invalid-label {
  color: #cc4b37; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4, .archive_filter label,
h5, .h5,
h6, .h6 {
  font-family: Brandon, Arial, sans-serif;
  font-style: normal;
  font-weight: bold;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small, .archive_filter label small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #c1c1d0; }

h1, .h1 {
  font-size: 2rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h2, .h2 {
  font-size: 1.625rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h3, .h3 {
  font-size: 1.375rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4, .h4, .archive_filter label {
  font-size: 1.125rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5, .h5 {
  font-size: 1.0625rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h6, .h6 {
  font-size: 1rem;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0.5rem; }

@media print, screen and (min-width: 62.5em) {
  h1, .h1 {
    font-size: 3rem; }
  h2, .h2 {
    font-size: 2.5rem; }
  h3, .h3 {
    font-size: 1.9375rem; }
  h4, .h4, .archive_filter label {
    font-size: 1.5625rem; }
  h5, .h5 {
    font-size: 1.25rem; }
  h6, .h6 {
    font-size: 1rem; } }

@media print, screen and (min-width: 75em) {
  h1, .h1 {
    font-size: 4rem; }
  h2, .h2 {
    font-size: 2rem; }
  h3, .h3 {
    font-size: 1.5rem; }
  h4, .h4, .archive_filter label {
    font-size: 1.125rem; }
  h5, .h5 {
    font-size: 1rem; }
  h6, .h6 {
    font-size: 0.875rem; } }

a {
  line-height: inherit;
  color: #FA6400;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #d75600; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 70.625rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #c1c1d0;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 10px solid #FA6400; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #545471; }

abbr, abbr[title] {
  border-bottom: 1px dotted #000000;
  cursor: help;
  text-decoration: none; }

figure {
  margin: 0; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #FBFBFC;
  font-family: Brandon, Arial, sans-serif;
  color: #000000; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #545471; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

cite, .cite-block {
  display: block;
  color: #545471;
  font-size: 0.8125rem; }
  cite:before, .cite-block:before {
    content: "— "; }

code, .code-inline {
  border: 1px solid #c1c1d0;
  background-color: #FBFBFC;
  font-family: Brandon, Arial, sans-serif;
  font-weight: normal;
  color: #000000;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem; }

.code-block {
  border: 1px solid #c1c1d0;
  background-color: #FBFBFC;
  font-family: Brandon, Arial, sans-serif;
  font-weight: normal;
  color: #000000;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem; }

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

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

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

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

@media print, screen and (min-width: 62.5em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 75em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  .xlarge-text-left {
    text-align: left; }
  .xlarge-text-right {
    text-align: right; }
  .xlarge-text-center {
    text-align: center; }
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 105em) {
  .xxlarge-text-left {
    text-align: left; }
  .xxlarge-text-right {
    text-align: right; }
  .xxlarge-text-center {
    text-align: center; }
  .xxlarge-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: black !important;
    -webkit-print-color-adjust: economy;
            color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #545471;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.row {
  max-width: 70.625rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem; }
    @media print, screen and (min-width: 62.5em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 75em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media screen and (min-width: 90em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media screen and (min-width: 105em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  width: 100%;
  float: left; }
  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: left;
    clear: none; }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

.column.row.row, .row.row.columns {
  float: none; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

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

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

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

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

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

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

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

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

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

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

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

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

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

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

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

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

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

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

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

.small-12 {
  width: 100%; }

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

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-collapse .row {
  margin-right: 0;
  margin-left: 0; }

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

.small-uncentered, .small-push-0, .small-pull-0 {
  position: static;
  margin-right: 0;
  margin-left: 0; }
  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {
    float: left;
    clear: none; }
  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {
    float: right; }

@media print, screen and (min-width: 62.5em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered, .medium-push-0, .medium-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {
      float: right; } }

@media print, screen and (min-width: 75em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered, .large-push-0, .large-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {
      float: right; } }

@media screen and (min-width: 90em) {
  .xlarge-1 {
    width: 8.33333%; }
  .xlarge-push-1 {
    position: relative;
    left: 8.33333%; }
  .xlarge-pull-1 {
    position: relative;
    left: -8.33333%; }
  .xlarge-offset-0 {
    margin-left: 0%; }
  .xlarge-2 {
    width: 16.66667%; }
  .xlarge-push-2 {
    position: relative;
    left: 16.66667%; }
  .xlarge-pull-2 {
    position: relative;
    left: -16.66667%; }
  .xlarge-offset-1 {
    margin-left: 8.33333%; }
  .xlarge-3 {
    width: 25%; }
  .xlarge-push-3 {
    position: relative;
    left: 25%; }
  .xlarge-pull-3 {
    position: relative;
    left: -25%; }
  .xlarge-offset-2 {
    margin-left: 16.66667%; }
  .xlarge-4 {
    width: 33.33333%; }
  .xlarge-push-4 {
    position: relative;
    left: 33.33333%; }
  .xlarge-pull-4 {
    position: relative;
    left: -33.33333%; }
  .xlarge-offset-3 {
    margin-left: 25%; }
  .xlarge-5 {
    width: 41.66667%; }
  .xlarge-push-5 {
    position: relative;
    left: 41.66667%; }
  .xlarge-pull-5 {
    position: relative;
    left: -41.66667%; }
  .xlarge-offset-4 {
    margin-left: 33.33333%; }
  .xlarge-6 {
    width: 50%; }
  .xlarge-push-6 {
    position: relative;
    left: 50%; }
  .xlarge-pull-6 {
    position: relative;
    left: -50%; }
  .xlarge-offset-5 {
    margin-left: 41.66667%; }
  .xlarge-7 {
    width: 58.33333%; }
  .xlarge-push-7 {
    position: relative;
    left: 58.33333%; }
  .xlarge-pull-7 {
    position: relative;
    left: -58.33333%; }
  .xlarge-offset-6 {
    margin-left: 50%; }
  .xlarge-8 {
    width: 66.66667%; }
  .xlarge-push-8 {
    position: relative;
    left: 66.66667%; }
  .xlarge-pull-8 {
    position: relative;
    left: -66.66667%; }
  .xlarge-offset-7 {
    margin-left: 58.33333%; }
  .xlarge-9 {
    width: 75%; }
  .xlarge-push-9 {
    position: relative;
    left: 75%; }
  .xlarge-pull-9 {
    position: relative;
    left: -75%; }
  .xlarge-offset-8 {
    margin-left: 66.66667%; }
  .xlarge-10 {
    width: 83.33333%; }
  .xlarge-push-10 {
    position: relative;
    left: 83.33333%; }
  .xlarge-pull-10 {
    position: relative;
    left: -83.33333%; }
  .xlarge-offset-9 {
    margin-left: 75%; }
  .xlarge-11 {
    width: 91.66667%; }
  .xlarge-push-11 {
    position: relative;
    left: 91.66667%; }
  .xlarge-pull-11 {
    position: relative;
    left: -91.66667%; }
  .xlarge-offset-10 {
    margin-left: 83.33333%; }
  .xlarge-12 {
    width: 100%; }
  .xlarge-offset-11 {
    margin-left: 91.66667%; }
  .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
    float: left;
    width: 100%; }
    .xlarge-up-1 > .column:nth-of-type(1n), .xlarge-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-1 > .column:nth-of-type(1n+1), .xlarge-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .xlarge-up-1 > .column:last-child, .xlarge-up-1 > .columns:last-child {
      float: left; }
  .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
    float: left;
    width: 50%; }
    .xlarge-up-2 > .column:nth-of-type(1n), .xlarge-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-2 > .column:nth-of-type(2n+1), .xlarge-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .xlarge-up-2 > .column:last-child, .xlarge-up-2 > .columns:last-child {
      float: left; }
  .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .xlarge-up-3 > .column:nth-of-type(1n), .xlarge-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-3 > .column:nth-of-type(3n+1), .xlarge-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .xlarge-up-3 > .column:last-child, .xlarge-up-3 > .columns:last-child {
      float: left; }
  .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
    float: left;
    width: 25%; }
    .xlarge-up-4 > .column:nth-of-type(1n), .xlarge-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-4 > .column:nth-of-type(4n+1), .xlarge-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .xlarge-up-4 > .column:last-child, .xlarge-up-4 > .columns:last-child {
      float: left; }
  .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
    float: left;
    width: 20%; }
    .xlarge-up-5 > .column:nth-of-type(1n), .xlarge-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-5 > .column:nth-of-type(5n+1), .xlarge-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .xlarge-up-5 > .column:last-child, .xlarge-up-5 > .columns:last-child {
      float: left; }
  .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .xlarge-up-6 > .column:nth-of-type(1n), .xlarge-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-6 > .column:nth-of-type(6n+1), .xlarge-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .xlarge-up-6 > .column:last-child, .xlarge-up-6 > .columns:last-child {
      float: left; }
  .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .xlarge-up-7 > .column:nth-of-type(1n), .xlarge-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-7 > .column:nth-of-type(7n+1), .xlarge-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .xlarge-up-7 > .column:last-child, .xlarge-up-7 > .columns:last-child {
      float: left; }
  .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .xlarge-up-8 > .column:nth-of-type(1n), .xlarge-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-8 > .column:nth-of-type(8n+1), .xlarge-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .xlarge-up-8 > .column:last-child, .xlarge-up-8 > .columns:last-child {
      float: left; }
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .xlarge-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .xlarge-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .xlarge-centered {
    margin-right: auto;
    margin-left: auto; }
    .xlarge-centered, .xlarge-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .xlarge-uncentered, .xlarge-push-0, .xlarge-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .xlarge-uncentered, .xlarge-uncentered:last-child:not(:first-child), .xlarge-push-0, .xlarge-push-0:last-child:not(:first-child), .xlarge-pull-0, .xlarge-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .xlarge-uncentered:last-child:not(:first-child), .xlarge-push-0:last-child:not(:first-child), .xlarge-pull-0:last-child:not(:first-child) {
      float: right; } }

@media screen and (min-width: 105em) {
  .xxlarge-1 {
    width: 8.33333%; }
  .xxlarge-push-1 {
    position: relative;
    left: 8.33333%; }
  .xxlarge-pull-1 {
    position: relative;
    left: -8.33333%; }
  .xxlarge-offset-0 {
    margin-left: 0%; }
  .xxlarge-2 {
    width: 16.66667%; }
  .xxlarge-push-2 {
    position: relative;
    left: 16.66667%; }
  .xxlarge-pull-2 {
    position: relative;
    left: -16.66667%; }
  .xxlarge-offset-1 {
    margin-left: 8.33333%; }
  .xxlarge-3 {
    width: 25%; }
  .xxlarge-push-3 {
    position: relative;
    left: 25%; }
  .xxlarge-pull-3 {
    position: relative;
    left: -25%; }
  .xxlarge-offset-2 {
    margin-left: 16.66667%; }
  .xxlarge-4 {
    width: 33.33333%; }
  .xxlarge-push-4 {
    position: relative;
    left: 33.33333%; }
  .xxlarge-pull-4 {
    position: relative;
    left: -33.33333%; }
  .xxlarge-offset-3 {
    margin-left: 25%; }
  .xxlarge-5 {
    width: 41.66667%; }
  .xxlarge-push-5 {
    position: relative;
    left: 41.66667%; }
  .xxlarge-pull-5 {
    position: relative;
    left: -41.66667%; }
  .xxlarge-offset-4 {
    margin-left: 33.33333%; }
  .xxlarge-6 {
    width: 50%; }
  .xxlarge-push-6 {
    position: relative;
    left: 50%; }
  .xxlarge-pull-6 {
    position: relative;
    left: -50%; }
  .xxlarge-offset-5 {
    margin-left: 41.66667%; }
  .xxlarge-7 {
    width: 58.33333%; }
  .xxlarge-push-7 {
    position: relative;
    left: 58.33333%; }
  .xxlarge-pull-7 {
    position: relative;
    left: -58.33333%; }
  .xxlarge-offset-6 {
    margin-left: 50%; }
  .xxlarge-8 {
    width: 66.66667%; }
  .xxlarge-push-8 {
    position: relative;
    left: 66.66667%; }
  .xxlarge-pull-8 {
    position: relative;
    left: -66.66667%; }
  .xxlarge-offset-7 {
    margin-left: 58.33333%; }
  .xxlarge-9 {
    width: 75%; }
  .xxlarge-push-9 {
    position: relative;
    left: 75%; }
  .xxlarge-pull-9 {
    position: relative;
    left: -75%; }
  .xxlarge-offset-8 {
    margin-left: 66.66667%; }
  .xxlarge-10 {
    width: 83.33333%; }
  .xxlarge-push-10 {
    position: relative;
    left: 83.33333%; }
  .xxlarge-pull-10 {
    position: relative;
    left: -83.33333%; }
  .xxlarge-offset-9 {
    margin-left: 75%; }
  .xxlarge-11 {
    width: 91.66667%; }
  .xxlarge-push-11 {
    position: relative;
    left: 91.66667%; }
  .xxlarge-pull-11 {
    position: relative;
    left: -91.66667%; }
  .xxlarge-offset-10 {
    margin-left: 83.33333%; }
  .xxlarge-12 {
    width: 100%; }
  .xxlarge-offset-11 {
    margin-left: 91.66667%; }
  .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
    float: left;
    width: 100%; }
    .xxlarge-up-1 > .column:nth-of-type(1n), .xxlarge-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-1 > .column:nth-of-type(1n+1), .xxlarge-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .xxlarge-up-1 > .column:last-child, .xxlarge-up-1 > .columns:last-child {
      float: left; }
  .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
    float: left;
    width: 50%; }
    .xxlarge-up-2 > .column:nth-of-type(1n), .xxlarge-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-2 > .column:nth-of-type(2n+1), .xxlarge-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .xxlarge-up-2 > .column:last-child, .xxlarge-up-2 > .columns:last-child {
      float: left; }
  .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .xxlarge-up-3 > .column:nth-of-type(1n), .xxlarge-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-3 > .column:nth-of-type(3n+1), .xxlarge-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .xxlarge-up-3 > .column:last-child, .xxlarge-up-3 > .columns:last-child {
      float: left; }
  .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
    float: left;
    width: 25%; }
    .xxlarge-up-4 > .column:nth-of-type(1n), .xxlarge-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-4 > .column:nth-of-type(4n+1), .xxlarge-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .xxlarge-up-4 > .column:last-child, .xxlarge-up-4 > .columns:last-child {
      float: left; }
  .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
    float: left;
    width: 20%; }
    .xxlarge-up-5 > .column:nth-of-type(1n), .xxlarge-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-5 > .column:nth-of-type(5n+1), .xxlarge-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .xxlarge-up-5 > .column:last-child, .xxlarge-up-5 > .columns:last-child {
      float: left; }
  .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .xxlarge-up-6 > .column:nth-of-type(1n), .xxlarge-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-6 > .column:nth-of-type(6n+1), .xxlarge-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .xxlarge-up-6 > .column:last-child, .xxlarge-up-6 > .columns:last-child {
      float: left; }
  .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .xxlarge-up-7 > .column:nth-of-type(1n), .xxlarge-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-7 > .column:nth-of-type(7n+1), .xxlarge-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .xxlarge-up-7 > .column:last-child, .xxlarge-up-7 > .columns:last-child {
      float: left; }
  .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .xxlarge-up-8 > .column:nth-of-type(1n), .xxlarge-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-8 > .column:nth-of-type(8n+1), .xxlarge-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .xxlarge-up-8 > .column:last-child, .xxlarge-up-8 > .columns:last-child {
      float: left; }
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .xxlarge-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .xxlarge-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .xxlarge-centered {
    margin-right: auto;
    margin-left: auto; }
    .xxlarge-centered, .xxlarge-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .xxlarge-uncentered, .xxlarge-push-0, .xxlarge-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .xxlarge-uncentered, .xxlarge-uncentered:last-child:not(:first-child), .xxlarge-push-0, .xxlarge-push-0:last-child:not(:first-child), .xxlarge-pull-0, .xxlarge-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .xxlarge-uncentered:last-child:not(:first-child), .xxlarge-push-0:last-child:not(:first-child), .xxlarge-pull-0:last-child:not(:first-child) {
      float: right; } }

.column-block {
  margin-bottom: 1.875rem; }
  .column-block > :last-child {
    margin-bottom: 0; }

.button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1.5rem 0;
  padding: 0.5em 1.5em;
  border: 1px solid transparent;
  border-radius: 0;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 1rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse'] #header #main-menu ul li.primary a, #header #main-menu ul li.primary [data-whatinput='mouse'] a, [data-whatinput='mouse'] body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary [data-whatinput='mouse'] a {
    outline: 0; }
  .button.tiny, #header #main-menu ul li.primary a.tiny, body.scrolled #header.dark-text #main-menu ul li.primary a.tiny {
    font-size: 0.75rem; }
  .button.small, #header #main-menu ul li.primary a.small, body.scrolled #header.dark-text #main-menu ul li.primary a.small {
    font-size: 1rem; }
  .button.large, #header #main-menu ul li.primary a.large, body.scrolled #header.dark-text #main-menu ul li.primary a.large {
    font-size: 1.25rem; }
  .button.expanded, #header #main-menu ul li.primary a.expanded, body.scrolled #header.dark-text #main-menu ul li.primary a.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a, .button.disabled, #header #main-menu ul li.primary a.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.disabled, .button[disabled], #header #main-menu ul li.primary a[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a[disabled], .button.disabled:hover, #header #main-menu ul li.primary a.disabled:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.disabled:hover, .button[disabled]:hover, #header #main-menu ul li.primary a[disabled]:hover, body.scrolled #header.dark-text #main-menu ul li.primary a[disabled]:hover, .button.disabled:focus, #header #main-menu ul li.primary a.disabled:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.disabled:focus, .button[disabled]:focus, #header #main-menu ul li.primary a[disabled]:focus, body.scrolled #header.dark-text #main-menu ul li.primary a[disabled]:focus {
    background-color: #8ABD24;
    color: #fefefe; }
  .button:hover, #header #main-menu ul li.primary a:hover, body.scrolled #header.dark-text #main-menu ul li.primary a:hover, .button:focus, #header #main-menu ul li.primary a:focus, body.scrolled #header.dark-text #main-menu ul li.primary a:focus {
    background-color: #75a11f;
    color: #fefefe; }
  .button.primary, #header #main-menu ul li.primary a.primary, body.scrolled #header.dark-text #main-menu ul li.primary a.primary, .button.primary.disabled, #header #main-menu ul li.primary a.primary.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.primary.disabled, .button.primary[disabled], #header #main-menu ul li.primary a.primary[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.primary[disabled], .button.primary.disabled:hover, #header #main-menu ul li.primary a.primary.disabled:hover, .button.primary[disabled]:hover, #header #main-menu ul li.primary a.primary[disabled]:hover, .button.primary.disabled:focus, #header #main-menu ul li.primary a.primary.disabled:focus, .button.primary[disabled]:focus, #header #main-menu ul li.primary a.primary[disabled]:focus {
    background-color: #FA6400;
    color: #000000; }
  .button.primary:hover, #header #main-menu ul li.primary a.primary:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.primary:hover, .button.primary:focus, #header #main-menu ul li.primary a.primary:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.primary:focus {
    background-color: #c85000;
    color: #000000; }
  .button.secondary, #header #main-menu ul li.primary a.secondary, body.scrolled #header.dark-text #main-menu ul li.primary a.secondary, .button.secondary.disabled, #header #main-menu ul li.primary a.secondary.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.secondary.disabled, .button.secondary[disabled], #header #main-menu ul li.primary a.secondary[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.secondary[disabled], .button.secondary.disabled:hover, #header #main-menu ul li.primary a.secondary.disabled:hover, .button.secondary[disabled]:hover, #header #main-menu ul li.primary a.secondary[disabled]:hover, .button.secondary.disabled:focus, #header #main-menu ul li.primary a.secondary.disabled:focus, .button.secondary[disabled]:focus, #header #main-menu ul li.primary a.secondary[disabled]:focus {
    background-color: #000000;
    color: #fefefe; }
  .button.secondary:hover, #header #main-menu ul li.primary a.secondary:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.secondary:hover, .button.secondary:focus, #header #main-menu ul li.primary a.secondary:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.secondary:focus {
    background-color: black;
    color: #fefefe; }
  .button.success, #header #main-menu ul li.primary a.success, body.scrolled #header.dark-text #main-menu ul li.primary a.success, .button.success.disabled, #header #main-menu ul li.primary a.success.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.success.disabled, .button.success[disabled], #header #main-menu ul li.primary a.success[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.success[disabled], .button.success.disabled:hover, #header #main-menu ul li.primary a.success.disabled:hover, .button.success[disabled]:hover, #header #main-menu ul li.primary a.success[disabled]:hover, .button.success.disabled:focus, #header #main-menu ul li.primary a.success.disabled:focus, .button.success[disabled]:focus, #header #main-menu ul li.primary a.success[disabled]:focus {
    background-color: #8ABD24;
    color: #000000; }
  .button.success:hover, #header #main-menu ul li.primary a.success:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.success:hover, .button.success:focus, #header #main-menu ul li.primary a.success:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.success:focus {
    background-color: #6e971d;
    color: #000000; }
  .button.warning, #header #main-menu ul li.primary a.warning, body.scrolled #header.dark-text #main-menu ul li.primary a.warning, .button.warning.disabled, #header #main-menu ul li.primary a.warning.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.warning.disabled, .button.warning[disabled], #header #main-menu ul li.primary a.warning[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.warning[disabled], .button.warning.disabled:hover, #header #main-menu ul li.primary a.warning.disabled:hover, .button.warning[disabled]:hover, #header #main-menu ul li.primary a.warning[disabled]:hover, .button.warning.disabled:focus, #header #main-menu ul li.primary a.warning.disabled:focus, .button.warning[disabled]:focus, #header #main-menu ul li.primary a.warning[disabled]:focus {
    background-color: #ffae00;
    color: #000000; }
  .button.warning:hover, #header #main-menu ul li.primary a.warning:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.warning:hover, .button.warning:focus, #header #main-menu ul li.primary a.warning:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.warning:focus {
    background-color: #cc8b00;
    color: #000000; }
  .button.alert, #header #main-menu ul li.primary a.alert, body.scrolled #header.dark-text #main-menu ul li.primary a.alert, .button.alert.disabled, #header #main-menu ul li.primary a.alert.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.alert.disabled, .button.alert[disabled], #header #main-menu ul li.primary a.alert[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.alert[disabled], .button.alert.disabled:hover, #header #main-menu ul li.primary a.alert.disabled:hover, .button.alert[disabled]:hover, #header #main-menu ul li.primary a.alert[disabled]:hover, .button.alert.disabled:focus, #header #main-menu ul li.primary a.alert.disabled:focus, .button.alert[disabled]:focus, #header #main-menu ul li.primary a.alert[disabled]:focus {
    background-color: #cc4b37;
    color: #000000; }
  .button.alert:hover, #header #main-menu ul li.primary a.alert:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.alert:hover, .button.alert:focus, #header #main-menu ul li.primary a.alert:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.alert:focus {
    background-color: #a53b2a;
    color: #000000; }
  .button.light-gray, #header #main-menu ul li.primary a.light-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray, .button.light-gray.disabled, #header #main-menu ul li.primary a.light-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray.disabled, .button.light-gray[disabled], #header #main-menu ul li.primary a.light-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray[disabled], .button.light-gray.disabled:hover, #header #main-menu ul li.primary a.light-gray.disabled:hover, .button.light-gray[disabled]:hover, #header #main-menu ul li.primary a.light-gray[disabled]:hover, .button.light-gray.disabled:focus, #header #main-menu ul li.primary a.light-gray.disabled:focus, .button.light-gray[disabled]:focus, #header #main-menu ul li.primary a.light-gray[disabled]:focus {
    background-color: #FBFBFC;
    color: #000000; }
  .button.light-gray:hover, #header #main-menu ul li.primary a.light-gray:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray:hover, .button.light-gray:focus, #header #main-menu ul li.primary a.light-gray:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray:focus {
    background-color: #c2c2d1;
    color: #000000; }
  .button.medium-gray, #header #main-menu ul li.primary a.medium-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray, .button.medium-gray.disabled, #header #main-menu ul li.primary a.medium-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray.disabled, .button.medium-gray[disabled], #header #main-menu ul li.primary a.medium-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray[disabled], .button.medium-gray.disabled:hover, #header #main-menu ul li.primary a.medium-gray.disabled:hover, .button.medium-gray[disabled]:hover, #header #main-menu ul li.primary a.medium-gray[disabled]:hover, .button.medium-gray.disabled:focus, #header #main-menu ul li.primary a.medium-gray.disabled:focus, .button.medium-gray[disabled]:focus, #header #main-menu ul li.primary a.medium-gray[disabled]:focus {
    background-color: #c1c1d0;
    color: #000000; }
  .button.medium-gray:hover, #header #main-menu ul li.primary a.medium-gray:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray:hover, .button.medium-gray:focus, #header #main-menu ul li.primary a.medium-gray:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray:focus {
    background-color: #9393ae;
    color: #000000; }
  .button.dark-gray, #header #main-menu ul li.primary a.dark-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray, .button.dark-gray.disabled, #header #main-menu ul li.primary a.dark-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray.disabled, .button.dark-gray[disabled], #header #main-menu ul li.primary a.dark-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray[disabled], .button.dark-gray.disabled:hover, #header #main-menu ul li.primary a.dark-gray.disabled:hover, .button.dark-gray[disabled]:hover, #header #main-menu ul li.primary a.dark-gray[disabled]:hover, .button.dark-gray.disabled:focus, #header #main-menu ul li.primary a.dark-gray.disabled:focus, .button.dark-gray[disabled]:focus, #header #main-menu ul li.primary a.dark-gray[disabled]:focus {
    background-color: #545471;
    color: #fefefe; }
  .button.dark-gray:hover, #header #main-menu ul li.primary a.dark-gray:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray:hover, .button.dark-gray:focus, #header #main-menu ul li.primary a.dark-gray:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray:focus {
    background-color: #44445a;
    color: #fefefe; }
  .button.black, #header #main-menu ul li.primary a.black, body.scrolled #header.dark-text #main-menu ul li.primary a.black, .button.black.disabled, #header #main-menu ul li.primary a.black.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.black.disabled, .button.black[disabled], #header #main-menu ul li.primary a.black[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.black[disabled], .button.black.disabled:hover, #header #main-menu ul li.primary a.black.disabled:hover, .button.black[disabled]:hover, #header #main-menu ul li.primary a.black[disabled]:hover, .button.black.disabled:focus, #header #main-menu ul li.primary a.black.disabled:focus, .button.black[disabled]:focus, #header #main-menu ul li.primary a.black[disabled]:focus {
    background-color: #000000;
    color: #fefefe; }
  .button.black:hover, #header #main-menu ul li.primary a.black:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.black:hover, .button.black:focus, #header #main-menu ul li.primary a.black:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.black:focus {
    background-color: black;
    color: #fefefe; }
  .button.white, #header #main-menu ul li.primary a.white, body.scrolled #header.dark-text #main-menu ul li.primary a.white, .button.white.disabled, #header #main-menu ul li.primary a.white.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.white.disabled, .button.white[disabled], #header #main-menu ul li.primary a.white[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.white[disabled], .button.white.disabled:hover, #header #main-menu ul li.primary a.white.disabled:hover, .button.white[disabled]:hover, #header #main-menu ul li.primary a.white[disabled]:hover, .button.white.disabled:focus, #header #main-menu ul li.primary a.white.disabled:focus, .button.white[disabled]:focus, #header #main-menu ul li.primary a.white[disabled]:focus {
    background-color: #fefefe;
    color: #000000; }
  .button.white:hover, #header #main-menu ul li.primary a.white:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.white:hover, .button.white:focus, #header #main-menu ul li.primary a.white:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.white:focus {
    background-color: #cbcbcb;
    color: #000000; }
  .button.hollow, #header #main-menu ul li.primary a.hollow, #header #main-menu ul li.secondary a, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow, body.scrolled #header.dark-text #main-menu ul li.secondary a, .button.hollow:hover, #header #main-menu ul li.primary a.hollow:hover, #header #main-menu ul li.secondary a:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a:hover, .button.hollow:focus, #header #main-menu ul li.primary a.hollow:focus, #header #main-menu ul li.secondary a:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a:focus, .button.hollow.disabled, #header #main-menu ul li.primary a.hollow.disabled, #header #main-menu ul li.secondary a.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled, .button.hollow.disabled:hover, #header #main-menu ul li.primary a.hollow.disabled:hover, #header #main-menu ul li.secondary a.disabled:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled:hover, .button.hollow.disabled:focus, #header #main-menu ul li.primary a.hollow.disabled:focus, #header #main-menu ul li.secondary a.disabled:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled:focus, .button.hollow[disabled], #header #main-menu ul li.primary a.hollow[disabled], #header #main-menu ul li.secondary a[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.hollow[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled], .button.hollow[disabled]:hover, #header #main-menu ul li.primary a.hollow[disabled]:hover, #header #main-menu ul li.secondary a[disabled]:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled]:hover, .button.hollow[disabled]:focus, #header #main-menu ul li.primary a.hollow[disabled]:focus, #header #main-menu ul li.secondary a[disabled]:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled]:focus {
    background-color: transparent; }
  .button.hollow, #header #main-menu ul li.primary a.hollow, #header #main-menu ul li.secondary a, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow, body.scrolled #header.dark-text #main-menu ul li.secondary a, .button.hollow.disabled, #header #main-menu ul li.primary a.hollow.disabled, #header #main-menu ul li.secondary a.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled, .button.hollow[disabled], #header #main-menu ul li.primary a.hollow[disabled], #header #main-menu ul li.secondary a[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.hollow[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled], .button.hollow.disabled:hover, #header #main-menu ul li.primary a.hollow.disabled:hover, #header #main-menu ul li.secondary a.disabled:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled:hover, .button.hollow[disabled]:hover, #header #main-menu ul li.primary a.hollow[disabled]:hover, #header #main-menu ul li.secondary a[disabled]:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled]:hover, .button.hollow.disabled:focus, #header #main-menu ul li.primary a.hollow.disabled:focus, #header #main-menu ul li.secondary a.disabled:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.disabled:focus, .button.hollow[disabled]:focus, #header #main-menu ul li.primary a.hollow[disabled]:focus, #header #main-menu ul li.secondary a[disabled]:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a[disabled]:focus {
    border: 1px solid #8ABD24;
    color: #8ABD24; }
  .button.hollow:hover, #header #main-menu ul li.primary a.hollow:hover, #header #main-menu ul li.secondary a:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a:hover, .button.hollow:focus, #header #main-menu ul li.primary a.hollow:focus, #header #main-menu ul li.secondary a:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a:focus {
    border-color: #455f12;
    color: #455f12; }
  .button.hollow.primary, #header #main-menu ul li.primary a.hollow.primary, #header #main-menu ul li.secondary a.primary, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.primary, body.scrolled #header.dark-text #main-menu ul li.secondary a.primary, .button.hollow.primary.disabled, #header #main-menu ul li.primary a.hollow.primary.disabled, #header #main-menu ul li.secondary a.primary.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.primary.disabled, .button.hollow.primary[disabled], #header #main-menu ul li.primary a.hollow.primary[disabled], #header #main-menu ul li.secondary a.primary[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.primary[disabled], .button.hollow.primary.disabled:hover, #header #main-menu ul li.primary a.hollow.primary.disabled:hover, #header #main-menu ul li.secondary a.primary.disabled:hover, .button.hollow.primary[disabled]:hover, #header #main-menu ul li.primary a.hollow.primary[disabled]:hover, #header #main-menu ul li.secondary a.primary[disabled]:hover, .button.hollow.primary.disabled:focus, #header #main-menu ul li.primary a.hollow.primary.disabled:focus, #header #main-menu ul li.secondary a.primary.disabled:focus, .button.hollow.primary[disabled]:focus, #header #main-menu ul li.primary a.hollow.primary[disabled]:focus, #header #main-menu ul li.secondary a.primary[disabled]:focus {
    border: 1px solid #FA6400;
    color: #FA6400; }
  .button.hollow.primary:hover, #header #main-menu ul li.primary a.hollow.primary:hover, #header #main-menu ul li.secondary a.primary:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.primary:hover, .button.hollow.primary:focus, #header #main-menu ul li.primary a.hollow.primary:focus, #header #main-menu ul li.secondary a.primary:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.primary:focus {
    border-color: #7d3200;
    color: #7d3200; }
  .button.hollow.secondary, #header #main-menu ul li.primary a.hollow.secondary, #header #main-menu ul li.secondary a.secondary, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.secondary, body.scrolled #header.dark-text #main-menu ul li.secondary a.secondary, .pagebuilder section.contact .content form input[type="submit"], .button.hollow.secondary.disabled, #header #main-menu ul li.primary a.hollow.secondary.disabled, #header #main-menu ul li.secondary a.secondary.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.secondary.disabled, .pagebuilder section.contact .content form input.disabled[type="submit"], .button.hollow.secondary[disabled], #header #main-menu ul li.primary a.hollow.secondary[disabled], #header #main-menu ul li.secondary a.secondary[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.secondary[disabled], .pagebuilder section.contact .content form input[disabled][type="submit"], .button.hollow.secondary.disabled:hover, #header #main-menu ul li.primary a.hollow.secondary.disabled:hover, #header #main-menu ul li.secondary a.secondary.disabled:hover, .pagebuilder section.contact .content form input.disabled:hover[type="submit"], .button.hollow.secondary[disabled]:hover, #header #main-menu ul li.primary a.hollow.secondary[disabled]:hover, #header #main-menu ul li.secondary a.secondary[disabled]:hover, .pagebuilder section.contact .content form input[disabled]:hover[type="submit"], .button.hollow.secondary.disabled:focus, #header #main-menu ul li.primary a.hollow.secondary.disabled:focus, #header #main-menu ul li.secondary a.secondary.disabled:focus, .pagebuilder section.contact .content form input.disabled:focus[type="submit"], .button.hollow.secondary[disabled]:focus, #header #main-menu ul li.primary a.hollow.secondary[disabled]:focus, #header #main-menu ul li.secondary a.secondary[disabled]:focus, .pagebuilder section.contact .content form input[disabled]:focus[type="submit"] {
    border: 1px solid #000000;
    color: #000000; }
  .button.hollow.secondary:hover, #header #main-menu ul li.primary a.hollow.secondary:hover, #header #main-menu ul li.secondary a.secondary:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.secondary:hover, .pagebuilder section.contact .content form input:hover[type="submit"], .button.hollow.secondary:focus, #header #main-menu ul li.primary a.hollow.secondary:focus, #header #main-menu ul li.secondary a.secondary:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.secondary:focus, .pagebuilder section.contact .content form input:focus[type="submit"] {
    border-color: black;
    color: black; }
  .button.hollow.success, #header #main-menu ul li.primary a.hollow.success, #header #main-menu ul li.secondary a.success, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.success, body.scrolled #header.dark-text #main-menu ul li.secondary a.success, .button.hollow.success.disabled, #header #main-menu ul li.primary a.hollow.success.disabled, #header #main-menu ul li.secondary a.success.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.success.disabled, .button.hollow.success[disabled], #header #main-menu ul li.primary a.hollow.success[disabled], #header #main-menu ul li.secondary a.success[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.success[disabled], .button.hollow.success.disabled:hover, #header #main-menu ul li.primary a.hollow.success.disabled:hover, #header #main-menu ul li.secondary a.success.disabled:hover, .button.hollow.success[disabled]:hover, #header #main-menu ul li.primary a.hollow.success[disabled]:hover, #header #main-menu ul li.secondary a.success[disabled]:hover, .button.hollow.success.disabled:focus, #header #main-menu ul li.primary a.hollow.success.disabled:focus, #header #main-menu ul li.secondary a.success.disabled:focus, .button.hollow.success[disabled]:focus, #header #main-menu ul li.primary a.hollow.success[disabled]:focus, #header #main-menu ul li.secondary a.success[disabled]:focus {
    border: 1px solid #8ABD24;
    color: #8ABD24; }
  .button.hollow.success:hover, #header #main-menu ul li.primary a.hollow.success:hover, #header #main-menu ul li.secondary a.success:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.success:hover, .button.hollow.success:focus, #header #main-menu ul li.primary a.hollow.success:focus, #header #main-menu ul li.secondary a.success:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.success:focus {
    border-color: #455f12;
    color: #455f12; }
  .button.hollow.warning, #header #main-menu ul li.primary a.hollow.warning, #header #main-menu ul li.secondary a.warning, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.warning, body.scrolled #header.dark-text #main-menu ul li.secondary a.warning, .button.hollow.warning.disabled, #header #main-menu ul li.primary a.hollow.warning.disabled, #header #main-menu ul li.secondary a.warning.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.warning.disabled, .button.hollow.warning[disabled], #header #main-menu ul li.primary a.hollow.warning[disabled], #header #main-menu ul li.secondary a.warning[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.warning[disabled], .button.hollow.warning.disabled:hover, #header #main-menu ul li.primary a.hollow.warning.disabled:hover, #header #main-menu ul li.secondary a.warning.disabled:hover, .button.hollow.warning[disabled]:hover, #header #main-menu ul li.primary a.hollow.warning[disabled]:hover, #header #main-menu ul li.secondary a.warning[disabled]:hover, .button.hollow.warning.disabled:focus, #header #main-menu ul li.primary a.hollow.warning.disabled:focus, #header #main-menu ul li.secondary a.warning.disabled:focus, .button.hollow.warning[disabled]:focus, #header #main-menu ul li.primary a.hollow.warning[disabled]:focus, #header #main-menu ul li.secondary a.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button.hollow.warning:hover, #header #main-menu ul li.primary a.hollow.warning:hover, #header #main-menu ul li.secondary a.warning:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.warning:hover, .button.hollow.warning:focus, #header #main-menu ul li.primary a.hollow.warning:focus, #header #main-menu ul li.secondary a.warning:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button.hollow.alert, #header #main-menu ul li.primary a.hollow.alert, #header #main-menu ul li.secondary a.alert, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.alert, body.scrolled #header.dark-text #main-menu ul li.secondary a.alert, .button.hollow.alert.disabled, #header #main-menu ul li.primary a.hollow.alert.disabled, #header #main-menu ul li.secondary a.alert.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.alert.disabled, .button.hollow.alert[disabled], #header #main-menu ul li.primary a.hollow.alert[disabled], #header #main-menu ul li.secondary a.alert[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.alert[disabled], .button.hollow.alert.disabled:hover, #header #main-menu ul li.primary a.hollow.alert.disabled:hover, #header #main-menu ul li.secondary a.alert.disabled:hover, .button.hollow.alert[disabled]:hover, #header #main-menu ul li.primary a.hollow.alert[disabled]:hover, #header #main-menu ul li.secondary a.alert[disabled]:hover, .button.hollow.alert.disabled:focus, #header #main-menu ul li.primary a.hollow.alert.disabled:focus, #header #main-menu ul li.secondary a.alert.disabled:focus, .button.hollow.alert[disabled]:focus, #header #main-menu ul li.primary a.hollow.alert[disabled]:focus, #header #main-menu ul li.secondary a.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button.hollow.alert:hover, #header #main-menu ul li.primary a.hollow.alert:hover, #header #main-menu ul li.secondary a.alert:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.alert:hover, .button.hollow.alert:focus, #header #main-menu ul li.primary a.hollow.alert:focus, #header #main-menu ul li.secondary a.alert:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button.hollow.light-gray, #header #main-menu ul li.primary a.hollow.light-gray, #header #main-menu ul li.secondary a.light-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.light-gray, body.scrolled #header.dark-text #main-menu ul li.secondary a.light-gray, .button.hollow.light-gray.disabled, #header #main-menu ul li.primary a.hollow.light-gray.disabled, #header #main-menu ul li.secondary a.light-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.light-gray.disabled, .button.hollow.light-gray[disabled], #header #main-menu ul li.primary a.hollow.light-gray[disabled], #header #main-menu ul li.secondary a.light-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.light-gray[disabled], .button.hollow.light-gray.disabled:hover, #header #main-menu ul li.primary a.hollow.light-gray.disabled:hover, #header #main-menu ul li.secondary a.light-gray.disabled:hover, .button.hollow.light-gray[disabled]:hover, #header #main-menu ul li.primary a.hollow.light-gray[disabled]:hover, #header #main-menu ul li.secondary a.light-gray[disabled]:hover, .button.hollow.light-gray.disabled:focus, #header #main-menu ul li.primary a.hollow.light-gray.disabled:focus, #header #main-menu ul li.secondary a.light-gray.disabled:focus, .button.hollow.light-gray[disabled]:focus, #header #main-menu ul li.primary a.hollow.light-gray[disabled]:focus, #header #main-menu ul li.secondary a.light-gray[disabled]:focus {
    border: 1px solid #FBFBFC;
    color: #FBFBFC; }
  .button.hollow.light-gray:hover, #header #main-menu ul li.primary a.hollow.light-gray:hover, #header #main-menu ul li.secondary a.light-gray:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.light-gray:hover, .button.hollow.light-gray:focus, #header #main-menu ul li.primary a.hollow.light-gray:focus, #header #main-menu ul li.secondary a.light-gray:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.light-gray:focus {
    border-color: #6c6c90;
    color: #6c6c90; }
  .button.hollow.medium-gray, #header #main-menu ul li.primary a.hollow.medium-gray, #header #main-menu ul li.secondary a.medium-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.medium-gray, body.scrolled #header.dark-text #main-menu ul li.secondary a.medium-gray, .button.hollow.medium-gray.disabled, #header #main-menu ul li.primary a.hollow.medium-gray.disabled, #header #main-menu ul li.secondary a.medium-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.medium-gray.disabled, .button.hollow.medium-gray[disabled], #header #main-menu ul li.primary a.hollow.medium-gray[disabled], #header #main-menu ul li.secondary a.medium-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.medium-gray[disabled], .button.hollow.medium-gray.disabled:hover, #header #main-menu ul li.primary a.hollow.medium-gray.disabled:hover, #header #main-menu ul li.secondary a.medium-gray.disabled:hover, .button.hollow.medium-gray[disabled]:hover, #header #main-menu ul li.primary a.hollow.medium-gray[disabled]:hover, #header #main-menu ul li.secondary a.medium-gray[disabled]:hover, .button.hollow.medium-gray.disabled:focus, #header #main-menu ul li.primary a.hollow.medium-gray.disabled:focus, #header #main-menu ul li.secondary a.medium-gray.disabled:focus, .button.hollow.medium-gray[disabled]:focus, #header #main-menu ul li.primary a.hollow.medium-gray[disabled]:focus, #header #main-menu ul li.secondary a.medium-gray[disabled]:focus {
    border: 1px solid #c1c1d0;
    color: #c1c1d0; }
  .button.hollow.medium-gray:hover, #header #main-menu ul li.primary a.hollow.medium-gray:hover, #header #main-menu ul li.secondary a.medium-gray:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.medium-gray:hover, .button.hollow.medium-gray:focus, #header #main-menu ul li.primary a.hollow.medium-gray:focus, #header #main-menu ul li.secondary a.medium-gray:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.medium-gray:focus {
    border-color: #565673;
    color: #565673; }
  .button.hollow.dark-gray, #header #main-menu ul li.primary a.hollow.dark-gray, #header #main-menu ul li.secondary a.dark-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.dark-gray, body.scrolled #header.dark-text #main-menu ul li.secondary a.dark-gray, .button.hollow.dark-gray.disabled, #header #main-menu ul li.primary a.hollow.dark-gray.disabled, #header #main-menu ul li.secondary a.dark-gray.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.dark-gray.disabled, .button.hollow.dark-gray[disabled], #header #main-menu ul li.primary a.hollow.dark-gray[disabled], #header #main-menu ul li.secondary a.dark-gray[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.dark-gray[disabled], .button.hollow.dark-gray.disabled:hover, #header #main-menu ul li.primary a.hollow.dark-gray.disabled:hover, #header #main-menu ul li.secondary a.dark-gray.disabled:hover, .button.hollow.dark-gray[disabled]:hover, #header #main-menu ul li.primary a.hollow.dark-gray[disabled]:hover, #header #main-menu ul li.secondary a.dark-gray[disabled]:hover, .button.hollow.dark-gray.disabled:focus, #header #main-menu ul li.primary a.hollow.dark-gray.disabled:focus, #header #main-menu ul li.secondary a.dark-gray.disabled:focus, .button.hollow.dark-gray[disabled]:focus, #header #main-menu ul li.primary a.hollow.dark-gray[disabled]:focus, #header #main-menu ul li.secondary a.dark-gray[disabled]:focus {
    border: 1px solid #545471;
    color: #545471; }
  .button.hollow.dark-gray:hover, #header #main-menu ul li.primary a.hollow.dark-gray:hover, #header #main-menu ul li.secondary a.dark-gray:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.dark-gray:hover, .button.hollow.dark-gray:focus, #header #main-menu ul li.primary a.hollow.dark-gray:focus, #header #main-menu ul li.secondary a.dark-gray:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.dark-gray:focus {
    border-color: #2a2a38;
    color: #2a2a38; }
  .button.hollow.black, #header #main-menu ul li.primary a.hollow.black, #header #main-menu ul li.secondary a.black, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.black, body.scrolled #header.dark-text #main-menu ul li.secondary a.black, .button.hollow.black.disabled, #header #main-menu ul li.primary a.hollow.black.disabled, #header #main-menu ul li.secondary a.black.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.black.disabled, .button.hollow.black[disabled], #header #main-menu ul li.primary a.hollow.black[disabled], #header #main-menu ul li.secondary a.black[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.black[disabled], .button.hollow.black.disabled:hover, #header #main-menu ul li.primary a.hollow.black.disabled:hover, #header #main-menu ul li.secondary a.black.disabled:hover, .button.hollow.black[disabled]:hover, #header #main-menu ul li.primary a.hollow.black[disabled]:hover, #header #main-menu ul li.secondary a.black[disabled]:hover, .button.hollow.black.disabled:focus, #header #main-menu ul li.primary a.hollow.black.disabled:focus, #header #main-menu ul li.secondary a.black.disabled:focus, .button.hollow.black[disabled]:focus, #header #main-menu ul li.primary a.hollow.black[disabled]:focus, #header #main-menu ul li.secondary a.black[disabled]:focus {
    border: 1px solid #000000;
    color: #000000; }
  .button.hollow.black:hover, #header #main-menu ul li.primary a.hollow.black:hover, #header #main-menu ul li.secondary a.black:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.black:hover, .button.hollow.black:focus, #header #main-menu ul li.primary a.hollow.black:focus, #header #main-menu ul li.secondary a.black:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.black:focus {
    border-color: black;
    color: black; }
  .button.hollow.white, #header #main-menu ul li.primary a.hollow.white, #header #main-menu ul li.secondary a.white, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow.white, body.scrolled #header.dark-text #main-menu ul li.secondary a.white, .button.hollow.white.disabled, #header #main-menu ul li.primary a.hollow.white.disabled, #header #main-menu ul li.secondary a.white.disabled, body.scrolled #header.dark-text #main-menu ul li.secondary a.white.disabled, .button.hollow.white[disabled], #header #main-menu ul li.primary a.hollow.white[disabled], #header #main-menu ul li.secondary a.white[disabled], body.scrolled #header.dark-text #main-menu ul li.secondary a.white[disabled], .button.hollow.white.disabled:hover, #header #main-menu ul li.primary a.hollow.white.disabled:hover, #header #main-menu ul li.secondary a.white.disabled:hover, .button.hollow.white[disabled]:hover, #header #main-menu ul li.primary a.hollow.white[disabled]:hover, #header #main-menu ul li.secondary a.white[disabled]:hover, .button.hollow.white.disabled:focus, #header #main-menu ul li.primary a.hollow.white.disabled:focus, #header #main-menu ul li.secondary a.white.disabled:focus, .button.hollow.white[disabled]:focus, #header #main-menu ul li.primary a.hollow.white[disabled]:focus, #header #main-menu ul li.secondary a.white[disabled]:focus {
    border: 1px solid #fefefe;
    color: #fefefe; }
  .button.hollow.white:hover, #header #main-menu ul li.primary a.hollow.white:hover, #header #main-menu ul li.secondary a.white:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.white:hover, .button.hollow.white:focus, #header #main-menu ul li.primary a.hollow.white:focus, #header #main-menu ul li.secondary a.white:focus, body.scrolled #header.dark-text #main-menu ul li.secondary a.white:focus {
    border-color: #7f7f7f;
    color: #7f7f7f; }
  .button.clear, #header #main-menu ul li.primary a.clear, body.scrolled #header.dark-text #main-menu ul li.primary a.clear, .button.clear:hover, #header #main-menu ul li.primary a.clear:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.clear:hover, .button.clear:focus, #header #main-menu ul li.primary a.clear:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.clear:focus, .button.clear.disabled, #header #main-menu ul li.primary a.clear.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.disabled, .button.clear.disabled:hover, #header #main-menu ul li.primary a.clear.disabled:hover, .button.clear.disabled:focus, #header #main-menu ul li.primary a.clear.disabled:focus, .button.clear[disabled], #header #main-menu ul li.primary a.clear[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.clear[disabled], .button.clear[disabled]:hover, #header #main-menu ul li.primary a.clear[disabled]:hover, .button.clear[disabled]:focus, #header #main-menu ul li.primary a.clear[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button.clear, #header #main-menu ul li.primary a.clear, body.scrolled #header.dark-text #main-menu ul li.primary a.clear, .button.clear.disabled, #header #main-menu ul li.primary a.clear.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.disabled, .button.clear[disabled], #header #main-menu ul li.primary a.clear[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a.clear[disabled], .button.clear.disabled:hover, #header #main-menu ul li.primary a.clear.disabled:hover, .button.clear[disabled]:hover, #header #main-menu ul li.primary a.clear[disabled]:hover, .button.clear.disabled:focus, #header #main-menu ul li.primary a.clear.disabled:focus, .button.clear[disabled]:focus, #header #main-menu ul li.primary a.clear[disabled]:focus {
    color: #8ABD24; }
  .button.clear:hover, #header #main-menu ul li.primary a.clear:hover, body.scrolled #header.dark-text #main-menu ul li.primary a.clear:hover, .button.clear:focus, #header #main-menu ul li.primary a.clear:focus, body.scrolled #header.dark-text #main-menu ul li.primary a.clear:focus {
    color: #455f12; }
  .button.clear.primary, #header #main-menu ul li.primary a.clear.primary, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.primary, .button.clear.primary.disabled, #header #main-menu ul li.primary a.clear.primary.disabled, .button.clear.primary[disabled], #header #main-menu ul li.primary a.clear.primary[disabled], .button.clear.primary.disabled:hover, #header #main-menu ul li.primary a.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, #header #main-menu ul li.primary a.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, #header #main-menu ul li.primary a.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus, #header #main-menu ul li.primary a.clear.primary[disabled]:focus {
    color: #FA6400; }
  .button.clear.primary:hover, #header #main-menu ul li.primary a.clear.primary:hover, .button.clear.primary:focus, #header #main-menu ul li.primary a.clear.primary:focus {
    color: #7d3200; }
  .button.clear.secondary, #header #main-menu ul li.primary a.clear.secondary, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.secondary, .button.clear.secondary.disabled, #header #main-menu ul li.primary a.clear.secondary.disabled, .button.clear.secondary[disabled], #header #main-menu ul li.primary a.clear.secondary[disabled], .button.clear.secondary.disabled:hover, #header #main-menu ul li.primary a.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, #header #main-menu ul li.primary a.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, #header #main-menu ul li.primary a.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus, #header #main-menu ul li.primary a.clear.secondary[disabled]:focus {
    color: #000000; }
  .button.clear.secondary:hover, #header #main-menu ul li.primary a.clear.secondary:hover, .button.clear.secondary:focus, #header #main-menu ul li.primary a.clear.secondary:focus {
    color: black; }
  .button.clear.success, #header #main-menu ul li.primary a.clear.success, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.success, .button.clear.success.disabled, #header #main-menu ul li.primary a.clear.success.disabled, .button.clear.success[disabled], #header #main-menu ul li.primary a.clear.success[disabled], .button.clear.success.disabled:hover, #header #main-menu ul li.primary a.clear.success.disabled:hover, .button.clear.success[disabled]:hover, #header #main-menu ul li.primary a.clear.success[disabled]:hover, .button.clear.success.disabled:focus, #header #main-menu ul li.primary a.clear.success.disabled:focus, .button.clear.success[disabled]:focus, #header #main-menu ul li.primary a.clear.success[disabled]:focus {
    color: #8ABD24; }
  .button.clear.success:hover, #header #main-menu ul li.primary a.clear.success:hover, .button.clear.success:focus, #header #main-menu ul li.primary a.clear.success:focus {
    color: #455f12; }
  .button.clear.warning, #header #main-menu ul li.primary a.clear.warning, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.warning, .button.clear.warning.disabled, #header #main-menu ul li.primary a.clear.warning.disabled, .button.clear.warning[disabled], #header #main-menu ul li.primary a.clear.warning[disabled], .button.clear.warning.disabled:hover, #header #main-menu ul li.primary a.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, #header #main-menu ul li.primary a.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, #header #main-menu ul li.primary a.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus, #header #main-menu ul li.primary a.clear.warning[disabled]:focus {
    color: #ffae00; }
  .button.clear.warning:hover, #header #main-menu ul li.primary a.clear.warning:hover, .button.clear.warning:focus, #header #main-menu ul li.primary a.clear.warning:focus {
    color: #805700; }
  .button.clear.alert, #header #main-menu ul li.primary a.clear.alert, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.alert, .button.clear.alert.disabled, #header #main-menu ul li.primary a.clear.alert.disabled, .button.clear.alert[disabled], #header #main-menu ul li.primary a.clear.alert[disabled], .button.clear.alert.disabled:hover, #header #main-menu ul li.primary a.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, #header #main-menu ul li.primary a.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, #header #main-menu ul li.primary a.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus, #header #main-menu ul li.primary a.clear.alert[disabled]:focus {
    color: #cc4b37; }
  .button.clear.alert:hover, #header #main-menu ul li.primary a.clear.alert:hover, .button.clear.alert:focus, #header #main-menu ul li.primary a.clear.alert:focus {
    color: #67251a; }
  .button.clear.light-gray, #header #main-menu ul li.primary a.clear.light-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.light-gray, .button.clear.light-gray.disabled, #header #main-menu ul li.primary a.clear.light-gray.disabled, .button.clear.light-gray[disabled], #header #main-menu ul li.primary a.clear.light-gray[disabled], .button.clear.light-gray.disabled:hover, #header #main-menu ul li.primary a.clear.light-gray.disabled:hover, .button.clear.light-gray[disabled]:hover, #header #main-menu ul li.primary a.clear.light-gray[disabled]:hover, .button.clear.light-gray.disabled:focus, #header #main-menu ul li.primary a.clear.light-gray.disabled:focus, .button.clear.light-gray[disabled]:focus, #header #main-menu ul li.primary a.clear.light-gray[disabled]:focus {
    color: #FBFBFC; }
  .button.clear.light-gray:hover, #header #main-menu ul li.primary a.clear.light-gray:hover, .button.clear.light-gray:focus, #header #main-menu ul li.primary a.clear.light-gray:focus {
    color: #6c6c90; }
  .button.clear.medium-gray, #header #main-menu ul li.primary a.clear.medium-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.medium-gray, .button.clear.medium-gray.disabled, #header #main-menu ul li.primary a.clear.medium-gray.disabled, .button.clear.medium-gray[disabled], #header #main-menu ul li.primary a.clear.medium-gray[disabled], .button.clear.medium-gray.disabled:hover, #header #main-menu ul li.primary a.clear.medium-gray.disabled:hover, .button.clear.medium-gray[disabled]:hover, #header #main-menu ul li.primary a.clear.medium-gray[disabled]:hover, .button.clear.medium-gray.disabled:focus, #header #main-menu ul li.primary a.clear.medium-gray.disabled:focus, .button.clear.medium-gray[disabled]:focus, #header #main-menu ul li.primary a.clear.medium-gray[disabled]:focus {
    color: #c1c1d0; }
  .button.clear.medium-gray:hover, #header #main-menu ul li.primary a.clear.medium-gray:hover, .button.clear.medium-gray:focus, #header #main-menu ul li.primary a.clear.medium-gray:focus {
    color: #565673; }
  .button.clear.dark-gray, #header #main-menu ul li.primary a.clear.dark-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.dark-gray, .button.clear.dark-gray.disabled, #header #main-menu ul li.primary a.clear.dark-gray.disabled, .button.clear.dark-gray[disabled], #header #main-menu ul li.primary a.clear.dark-gray[disabled], .button.clear.dark-gray.disabled:hover, #header #main-menu ul li.primary a.clear.dark-gray.disabled:hover, .button.clear.dark-gray[disabled]:hover, #header #main-menu ul li.primary a.clear.dark-gray[disabled]:hover, .button.clear.dark-gray.disabled:focus, #header #main-menu ul li.primary a.clear.dark-gray.disabled:focus, .button.clear.dark-gray[disabled]:focus, #header #main-menu ul li.primary a.clear.dark-gray[disabled]:focus {
    color: #545471; }
  .button.clear.dark-gray:hover, #header #main-menu ul li.primary a.clear.dark-gray:hover, .button.clear.dark-gray:focus, #header #main-menu ul li.primary a.clear.dark-gray:focus {
    color: #2a2a38; }
  .button.clear.black, #header #main-menu ul li.primary a.clear.black, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.black, .button.clear.black.disabled, #header #main-menu ul li.primary a.clear.black.disabled, .button.clear.black[disabled], #header #main-menu ul li.primary a.clear.black[disabled], .button.clear.black.disabled:hover, #header #main-menu ul li.primary a.clear.black.disabled:hover, .button.clear.black[disabled]:hover, #header #main-menu ul li.primary a.clear.black[disabled]:hover, .button.clear.black.disabled:focus, #header #main-menu ul li.primary a.clear.black.disabled:focus, .button.clear.black[disabled]:focus, #header #main-menu ul li.primary a.clear.black[disabled]:focus {
    color: #000000; }
  .button.clear.black:hover, #header #main-menu ul li.primary a.clear.black:hover, .button.clear.black:focus, #header #main-menu ul li.primary a.clear.black:focus {
    color: black; }
  .button.clear.white, #header #main-menu ul li.primary a.clear.white, body.scrolled #header.dark-text #main-menu ul li.primary a.clear.white, .button.clear.white.disabled, #header #main-menu ul li.primary a.clear.white.disabled, .button.clear.white[disabled], #header #main-menu ul li.primary a.clear.white[disabled], .button.clear.white.disabled:hover, #header #main-menu ul li.primary a.clear.white.disabled:hover, .button.clear.white[disabled]:hover, #header #main-menu ul li.primary a.clear.white[disabled]:hover, .button.clear.white.disabled:focus, #header #main-menu ul li.primary a.clear.white.disabled:focus, .button.clear.white[disabled]:focus, #header #main-menu ul li.primary a.clear.white[disabled]:focus {
    color: #fefefe; }
  .button.clear.white:hover, #header #main-menu ul li.primary a.clear.white:hover, .button.clear.white:focus, #header #main-menu ul li.primary a.clear.white:focus {
    color: #7f7f7f; }
  .button.disabled, #header #main-menu ul li.primary a.disabled, body.scrolled #header.dark-text #main-menu ul li.primary a.disabled, .button[disabled], #header #main-menu ul li.primary a[disabled], body.scrolled #header.dark-text #main-menu ul li.primary a[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
  .button.dropdown::after, #header #main-menu ul li.primary a.dropdown::after, body.scrolled #header.dark-text #main-menu ul li.primary a.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.4em;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1.5em; }
  .button.dropdown.hollow::after, #header #main-menu ul li.primary a.dropdown.hollow::after, #header #main-menu ul li.secondary a.dropdown::after, body.scrolled #header.dark-text #main-menu ul li.secondary a.dropdown::after, .button.dropdown.clear::after, #header #main-menu ul li.primary a.dropdown.clear::after {
    border-top-color: #8ABD24; }
  .button.dropdown.hollow.primary::after, #header #main-menu ul li.primary a.dropdown.hollow.primary::after, #header #main-menu ul li.secondary a.dropdown.primary::after, .button.dropdown.clear.primary::after, #header #main-menu ul li.primary a.dropdown.clear.primary::after {
    border-top-color: #FA6400; }
  .button.dropdown.hollow.secondary::after, #header #main-menu ul li.primary a.dropdown.hollow.secondary::after, #header #main-menu ul li.secondary a.dropdown.secondary::after, .pagebuilder section.contact .content form input.dropdown[type="submit"]::after, .button.dropdown.clear.secondary::after, #header #main-menu ul li.primary a.dropdown.clear.secondary::after {
    border-top-color: #000000; }
  .button.dropdown.hollow.success::after, #header #main-menu ul li.primary a.dropdown.hollow.success::after, #header #main-menu ul li.secondary a.dropdown.success::after, .button.dropdown.clear.success::after, #header #main-menu ul li.primary a.dropdown.clear.success::after {
    border-top-color: #8ABD24; }
  .button.dropdown.hollow.warning::after, #header #main-menu ul li.primary a.dropdown.hollow.warning::after, #header #main-menu ul li.secondary a.dropdown.warning::after, .button.dropdown.clear.warning::after, #header #main-menu ul li.primary a.dropdown.clear.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after, #header #main-menu ul li.primary a.dropdown.hollow.alert::after, #header #main-menu ul li.secondary a.dropdown.alert::after, .button.dropdown.clear.alert::after, #header #main-menu ul li.primary a.dropdown.clear.alert::after {
    border-top-color: #cc4b37; }
  .button.dropdown.hollow.light-gray::after, #header #main-menu ul li.primary a.dropdown.hollow.light-gray::after, #header #main-menu ul li.secondary a.dropdown.light-gray::after, .button.dropdown.clear.light-gray::after, #header #main-menu ul li.primary a.dropdown.clear.light-gray::after {
    border-top-color: #FBFBFC; }
  .button.dropdown.hollow.medium-gray::after, #header #main-menu ul li.primary a.dropdown.hollow.medium-gray::after, #header #main-menu ul li.secondary a.dropdown.medium-gray::after, .button.dropdown.clear.medium-gray::after, #header #main-menu ul li.primary a.dropdown.clear.medium-gray::after {
    border-top-color: #c1c1d0; }
  .button.dropdown.hollow.dark-gray::after, #header #main-menu ul li.primary a.dropdown.hollow.dark-gray::after, #header #main-menu ul li.secondary a.dropdown.dark-gray::after, .button.dropdown.clear.dark-gray::after, #header #main-menu ul li.primary a.dropdown.clear.dark-gray::after {
    border-top-color: #545471; }
  .button.dropdown.hollow.black::after, #header #main-menu ul li.primary a.dropdown.hollow.black::after, #header #main-menu ul li.secondary a.dropdown.black::after, .button.dropdown.clear.black::after, #header #main-menu ul li.primary a.dropdown.clear.black::after {
    border-top-color: #000000; }
  .button.dropdown.hollow.white::after, #header #main-menu ul li.primary a.dropdown.hollow.white::after, #header #main-menu ul li.secondary a.dropdown.white::after, .button.dropdown.clear.white::after, #header #main-menu ul li.primary a.dropdown.clear.white::after {
    border-top-color: #fefefe; }
  .button.arrow-only::after, #header #main-menu ul li.primary a.arrow-only::after, body.scrolled #header.dark-text #main-menu ul li.primary a.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, #header #main-menu ul li.primary a:hover, body.scrolled #header.dark-text #main-menu ul li.primary a:hover, .woocommerce .button:hover, .woocommerce-page .button:hover, a.button:focus, #header #main-menu ul li.primary a:focus, body.scrolled #header.dark-text #main-menu ul li.primary a:focus, .woocommerce .button:focus, .woocommerce-page .button:focus {
  text-decoration: none; }

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .button-group::after {
    clear: both; }
  .button-group::before, .button-group::after {
    display: none; }
  .button-group .button, .button-group #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group a, .button-group body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group a {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 1rem;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child, .button-group #header #main-menu ul li.primary a:last-child, #header #main-menu ul li.primary .button-group a:last-child, .button-group body.scrolled #header.dark-text #main-menu ul li.primary a:last-child, body.scrolled #header.dark-text #main-menu ul li.primary .button-group a:last-child {
      margin-right: 0; }
  .button-group.tiny .button, .button-group.tiny #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.tiny a, .button-group.tiny body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.tiny a {
    font-size: 0.75rem; }
  .button-group.small .button, .button-group.small #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.small a, .button-group.small body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.small a {
    font-size: 1rem; }
  .button-group.large .button, .button-group.large #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.large a, .button-group.large body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.large a {
    font-size: 1.25rem; }
  .button-group.expanded .button, .button-group.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.expanded a, .button-group.expanded body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.expanded a {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button, .button-group.primary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.primary a, .button-group.primary body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.primary a, .button-group.primary .button.disabled, .button-group.primary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.primary a.disabled, .button-group.primary .button[disabled], .button-group.primary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.primary a[disabled], .button-group.primary .button.disabled:hover, .button-group.primary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.primary a.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.primary a[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.primary a.disabled:focus, .button-group.primary .button[disabled]:focus, .button-group.primary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.primary a[disabled]:focus {
    background-color: #FA6400;
    color: #000000; }
  .button-group.primary .button:hover, .button-group.primary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.primary a:hover, .button-group.primary .button:focus, .button-group.primary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.primary a:focus {
    background-color: #c85000;
    color: #000000; }
  .button-group.secondary .button, .button-group.secondary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.secondary a, .button-group.secondary body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.secondary a, .button-group.secondary .button.disabled, .button-group.secondary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.secondary a.disabled, .button-group.secondary .button[disabled], .button-group.secondary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.secondary a[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.secondary a.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.secondary a[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.secondary a.disabled:focus, .button-group.secondary .button[disabled]:focus, .button-group.secondary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.secondary a[disabled]:focus {
    background-color: #000000;
    color: #fefefe; }
  .button-group.secondary .button:hover, .button-group.secondary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.secondary a:hover, .button-group.secondary .button:focus, .button-group.secondary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.secondary a:focus {
    background-color: black;
    color: #fefefe; }
  .button-group.success .button, .button-group.success #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.success a, .button-group.success body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.success a, .button-group.success .button.disabled, .button-group.success #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.success a.disabled, .button-group.success .button[disabled], .button-group.success #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.success a[disabled], .button-group.success .button.disabled:hover, .button-group.success #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.success a.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.success a[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.success a.disabled:focus, .button-group.success .button[disabled]:focus, .button-group.success #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.success a[disabled]:focus {
    background-color: #8ABD24;
    color: #000000; }
  .button-group.success .button:hover, .button-group.success #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.success a:hover, .button-group.success .button:focus, .button-group.success #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.success a:focus {
    background-color: #6e971d;
    color: #000000; }
  .button-group.warning .button, .button-group.warning #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.warning a, .button-group.warning body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.warning a, .button-group.warning .button.disabled, .button-group.warning #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.warning a.disabled, .button-group.warning .button[disabled], .button-group.warning #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.warning a[disabled], .button-group.warning .button.disabled:hover, .button-group.warning #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.warning a.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.warning a[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.warning a.disabled:focus, .button-group.warning .button[disabled]:focus, .button-group.warning #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.warning a[disabled]:focus {
    background-color: #ffae00;
    color: #000000; }
  .button-group.warning .button:hover, .button-group.warning #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.warning a:hover, .button-group.warning .button:focus, .button-group.warning #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.warning a:focus {
    background-color: #cc8b00;
    color: #000000; }
  .button-group.alert .button, .button-group.alert #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.alert a, .button-group.alert body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.alert a, .button-group.alert .button.disabled, .button-group.alert #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.alert a.disabled, .button-group.alert .button[disabled], .button-group.alert #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.alert a[disabled], .button-group.alert .button.disabled:hover, .button-group.alert #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.alert a.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.alert a[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.alert a.disabled:focus, .button-group.alert .button[disabled]:focus, .button-group.alert #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.alert a[disabled]:focus {
    background-color: #cc4b37;
    color: #000000; }
  .button-group.alert .button:hover, .button-group.alert #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.alert a:hover, .button-group.alert .button:focus, .button-group.alert #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.alert a:focus {
    background-color: #a53b2a;
    color: #000000; }
  .button-group.light-gray .button, .button-group.light-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.light-gray a, .button-group.light-gray body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.light-gray a, .button-group.light-gray .button.disabled, .button-group.light-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.light-gray a.disabled, .button-group.light-gray .button[disabled], .button-group.light-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.light-gray a[disabled], .button-group.light-gray .button.disabled:hover, .button-group.light-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.light-gray a.disabled:hover, .button-group.light-gray .button[disabled]:hover, .button-group.light-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.light-gray a[disabled]:hover, .button-group.light-gray .button.disabled:focus, .button-group.light-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.light-gray a.disabled:focus, .button-group.light-gray .button[disabled]:focus, .button-group.light-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.light-gray a[disabled]:focus {
    background-color: #FBFBFC;
    color: #000000; }
  .button-group.light-gray .button:hover, .button-group.light-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.light-gray a:hover, .button-group.light-gray .button:focus, .button-group.light-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.light-gray a:focus {
    background-color: #c2c2d1;
    color: #000000; }
  .button-group.medium-gray .button, .button-group.medium-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.medium-gray a, .button-group.medium-gray body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.medium-gray a, .button-group.medium-gray .button.disabled, .button-group.medium-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.medium-gray a.disabled, .button-group.medium-gray .button[disabled], .button-group.medium-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.medium-gray a[disabled], .button-group.medium-gray .button.disabled:hover, .button-group.medium-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.medium-gray a.disabled:hover, .button-group.medium-gray .button[disabled]:hover, .button-group.medium-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.medium-gray a[disabled]:hover, .button-group.medium-gray .button.disabled:focus, .button-group.medium-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.medium-gray a.disabled:focus, .button-group.medium-gray .button[disabled]:focus, .button-group.medium-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.medium-gray a[disabled]:focus {
    background-color: #c1c1d0;
    color: #000000; }
  .button-group.medium-gray .button:hover, .button-group.medium-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.medium-gray a:hover, .button-group.medium-gray .button:focus, .button-group.medium-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.medium-gray a:focus {
    background-color: #9393ae;
    color: #000000; }
  .button-group.dark-gray .button, .button-group.dark-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.dark-gray a, .button-group.dark-gray body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.dark-gray a, .button-group.dark-gray .button.disabled, .button-group.dark-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.dark-gray a.disabled, .button-group.dark-gray .button[disabled], .button-group.dark-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.dark-gray a[disabled], .button-group.dark-gray .button.disabled:hover, .button-group.dark-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.dark-gray a.disabled:hover, .button-group.dark-gray .button[disabled]:hover, .button-group.dark-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.dark-gray a[disabled]:hover, .button-group.dark-gray .button.disabled:focus, .button-group.dark-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.dark-gray a.disabled:focus, .button-group.dark-gray .button[disabled]:focus, .button-group.dark-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.dark-gray a[disabled]:focus {
    background-color: #545471;
    color: #fefefe; }
  .button-group.dark-gray .button:hover, .button-group.dark-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.dark-gray a:hover, .button-group.dark-gray .button:focus, .button-group.dark-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.dark-gray a:focus {
    background-color: #44445a;
    color: #fefefe; }
  .button-group.black .button, .button-group.black #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.black a, .button-group.black body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.black a, .button-group.black .button.disabled, .button-group.black #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.black a.disabled, .button-group.black .button[disabled], .button-group.black #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.black a[disabled], .button-group.black .button.disabled:hover, .button-group.black #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.black a.disabled:hover, .button-group.black .button[disabled]:hover, .button-group.black #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.black a[disabled]:hover, .button-group.black .button.disabled:focus, .button-group.black #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.black a.disabled:focus, .button-group.black .button[disabled]:focus, .button-group.black #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.black a[disabled]:focus {
    background-color: #000000;
    color: #fefefe; }
  .button-group.black .button:hover, .button-group.black #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.black a:hover, .button-group.black .button:focus, .button-group.black #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.black a:focus {
    background-color: black;
    color: #fefefe; }
  .button-group.white .button, .button-group.white #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.white a, .button-group.white body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.white a, .button-group.white .button.disabled, .button-group.white #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.white a.disabled, .button-group.white .button[disabled], .button-group.white #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.white a[disabled], .button-group.white .button.disabled:hover, .button-group.white #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.white a.disabled:hover, .button-group.white .button[disabled]:hover, .button-group.white #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.white a[disabled]:hover, .button-group.white .button.disabled:focus, .button-group.white #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.white a.disabled:focus, .button-group.white .button[disabled]:focus, .button-group.white #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.white a[disabled]:focus {
    background-color: #fefefe;
    color: #000000; }
  .button-group.white .button:hover, .button-group.white #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.white a:hover, .button-group.white .button:focus, .button-group.white #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.white a:focus {
    background-color: #cbcbcb;
    color: #000000; }
  .button-group.hollow .button, .button-group.hollow #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow a, .button-group.hollow body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.hollow a, .button-group.hollow .button:hover, .button-group.hollow #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow a:hover, .button-group.hollow .button:focus, .button-group.hollow #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow a:focus, .button-group.hollow .button.disabled, .button-group.hollow #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow a.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow a[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a[disabled]:hover, .button-group.hollow .button[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a[disabled]:focus {
    background-color: transparent; }
  .button-group.hollow .button, .button-group.hollow #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow a, .button-group.hollow body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.hollow a, .button-group.hollow .button.disabled, .button-group.hollow #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow a.disabled, .button-group.hollow .button[disabled], .button-group.hollow #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow a[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.disabled:focus, .button-group.hollow .button[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a[disabled]:focus {
    border: 1px solid #8ABD24;
    color: #8ABD24; }
  .button-group.hollow .button:hover, .button-group.hollow #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow a:hover, .button-group.hollow .button:focus, .button-group.hollow #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow a:focus {
    border-color: #455f12;
    color: #455f12; }
  .button-group.hollow.primary .button, .button-group.hollow.primary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.primary a, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.primary a.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.primary a[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.primary a.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.primary a[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.primary a.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow.primary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.primary a[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow #header #main-menu ul li.primary a.primary, #header #main-menu ul li.primary .button-group.hollow a.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow #header #main-menu ul li.primary a.primary.disabled, #header #main-menu ul li.primary .button-group.hollow a.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow #header #main-menu ul li.primary a.primary[disabled], #header #main-menu ul li.primary .button-group.hollow a.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.primary.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.primary[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.primary.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.primary[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.primary[disabled]:focus {
    border: 1px solid #FA6400;
    color: #FA6400; }
  .button-group.hollow.primary .button:hover, .button-group.hollow.primary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.primary a:hover, .button-group.hollow.primary .button:focus, .button-group.hollow.primary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.primary a:focus, .button-group.hollow .button.primary:hover, .button-group.hollow #header #main-menu ul li.primary a.primary:hover, #header #main-menu ul li.primary .button-group.hollow a.primary:hover, .button-group.hollow .button.primary:focus, .button-group.hollow #header #main-menu ul li.primary a.primary:focus, #header #main-menu ul li.primary .button-group.hollow a.primary:focus {
    border-color: #7d3200;
    color: #7d3200; }
  .button-group.hollow.secondary .button, .button-group.hollow.secondary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.secondary a, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.secondary a.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.secondary a[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.secondary a.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.secondary a[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.secondary a.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow.secondary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.secondary a[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow #header #main-menu ul li.primary a.secondary, #header #main-menu ul li.primary .button-group.hollow a.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow #header #main-menu ul li.primary a.secondary.disabled, #header #main-menu ul li.primary .button-group.hollow a.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow #header #main-menu ul li.primary a.secondary[disabled], #header #main-menu ul li.primary .button-group.hollow a.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.secondary.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.secondary[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.secondary.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.secondary[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.secondary[disabled]:focus {
    border: 1px solid #000000;
    color: #000000; }
  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.secondary a:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow.secondary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.secondary a:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow #header #main-menu ul li.primary a.secondary:hover, #header #main-menu ul li.primary .button-group.hollow a.secondary:hover, .button-group.hollow .button.secondary:focus, .button-group.hollow #header #main-menu ul li.primary a.secondary:focus, #header #main-menu ul li.primary .button-group.hollow a.secondary:focus {
    border-color: black;
    color: black; }
  .button-group.hollow.success .button, .button-group.hollow.success #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.success a, .button-group.hollow.success .button.disabled, .button-group.hollow.success #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.success a.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.success a[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.success a.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.success a[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.success a.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow.success #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.success a[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow #header #main-menu ul li.primary a.success, #header #main-menu ul li.primary .button-group.hollow a.success, .button-group.hollow .button.success.disabled, .button-group.hollow #header #main-menu ul li.primary a.success.disabled, #header #main-menu ul li.primary .button-group.hollow a.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow #header #main-menu ul li.primary a.success[disabled], #header #main-menu ul li.primary .button-group.hollow a.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.success.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.success[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.success.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.success[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.success[disabled]:focus {
    border: 1px solid #8ABD24;
    color: #8ABD24; }
  .button-group.hollow.success .button:hover, .button-group.hollow.success #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.success a:hover, .button-group.hollow.success .button:focus, .button-group.hollow.success #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.success a:focus, .button-group.hollow .button.success:hover, .button-group.hollow #header #main-menu ul li.primary a.success:hover, #header #main-menu ul li.primary .button-group.hollow a.success:hover, .button-group.hollow .button.success:focus, .button-group.hollow #header #main-menu ul li.primary a.success:focus, #header #main-menu ul li.primary .button-group.hollow a.success:focus {
    border-color: #455f12;
    color: #455f12; }
  .button-group.hollow.warning .button, .button-group.hollow.warning #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.warning a, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.warning a.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.warning a[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.warning a.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.warning a[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.warning a.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow.warning #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.warning a[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow #header #main-menu ul li.primary a.warning, #header #main-menu ul li.primary .button-group.hollow a.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow #header #main-menu ul li.primary a.warning.disabled, #header #main-menu ul li.primary .button-group.hollow a.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow #header #main-menu ul li.primary a.warning[disabled], #header #main-menu ul li.primary .button-group.hollow a.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.warning.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.warning[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.warning.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.warning[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button-group.hollow.warning .button:hover, .button-group.hollow.warning #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.warning a:hover, .button-group.hollow.warning .button:focus, .button-group.hollow.warning #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.warning a:focus, .button-group.hollow .button.warning:hover, .button-group.hollow #header #main-menu ul li.primary a.warning:hover, #header #main-menu ul li.primary .button-group.hollow a.warning:hover, .button-group.hollow .button.warning:focus, .button-group.hollow #header #main-menu ul li.primary a.warning:focus, #header #main-menu ul li.primary .button-group.hollow a.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button-group.hollow.alert .button, .button-group.hollow.alert #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.alert a, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.alert a.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.alert a[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.alert a.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.alert a[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.alert a.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow.alert #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.alert a[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow #header #main-menu ul li.primary a.alert, #header #main-menu ul li.primary .button-group.hollow a.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow #header #main-menu ul li.primary a.alert.disabled, #header #main-menu ul li.primary .button-group.hollow a.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow #header #main-menu ul li.primary a.alert[disabled], #header #main-menu ul li.primary .button-group.hollow a.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.alert.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.alert[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.alert.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.alert[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button-group.hollow.alert .button:hover, .button-group.hollow.alert #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.alert a:hover, .button-group.hollow.alert .button:focus, .button-group.hollow.alert #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.alert a:focus, .button-group.hollow .button.alert:hover, .button-group.hollow #header #main-menu ul li.primary a.alert:hover, #header #main-menu ul li.primary .button-group.hollow a.alert:hover, .button-group.hollow .button.alert:focus, .button-group.hollow #header #main-menu ul li.primary a.alert:focus, #header #main-menu ul li.primary .button-group.hollow a.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button-group.hollow.light-gray .button, .button-group.hollow.light-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.light-gray a, .button-group.hollow.light-gray .button.disabled, .button-group.hollow.light-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.light-gray a.disabled, .button-group.hollow.light-gray .button[disabled], .button-group.hollow.light-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.light-gray a[disabled], .button-group.hollow.light-gray .button.disabled:hover, .button-group.hollow.light-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.light-gray a.disabled:hover, .button-group.hollow.light-gray .button[disabled]:hover, .button-group.hollow.light-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.light-gray a[disabled]:hover, .button-group.hollow.light-gray .button.disabled:focus, .button-group.hollow.light-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.light-gray a.disabled:focus, .button-group.hollow.light-gray .button[disabled]:focus, .button-group.hollow.light-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.light-gray a[disabled]:focus, .button-group.hollow .button.light-gray, .button-group.hollow #header #main-menu ul li.primary a.light-gray, #header #main-menu ul li.primary .button-group.hollow a.light-gray, .button-group.hollow .button.light-gray.disabled, .button-group.hollow #header #main-menu ul li.primary a.light-gray.disabled, #header #main-menu ul li.primary .button-group.hollow a.light-gray.disabled, .button-group.hollow .button.light-gray[disabled], .button-group.hollow #header #main-menu ul li.primary a.light-gray[disabled], #header #main-menu ul li.primary .button-group.hollow a.light-gray[disabled], .button-group.hollow .button.light-gray.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.light-gray.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.light-gray.disabled:hover, .button-group.hollow .button.light-gray[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.light-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.light-gray[disabled]:hover, .button-group.hollow .button.light-gray.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.light-gray.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.light-gray.disabled:focus, .button-group.hollow .button.light-gray[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.light-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.light-gray[disabled]:focus {
    border: 1px solid #FBFBFC;
    color: #FBFBFC; }
  .button-group.hollow.light-gray .button:hover, .button-group.hollow.light-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.light-gray a:hover, .button-group.hollow.light-gray .button:focus, .button-group.hollow.light-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.light-gray a:focus, .button-group.hollow .button.light-gray:hover, .button-group.hollow #header #main-menu ul li.primary a.light-gray:hover, #header #main-menu ul li.primary .button-group.hollow a.light-gray:hover, .button-group.hollow .button.light-gray:focus, .button-group.hollow #header #main-menu ul li.primary a.light-gray:focus, #header #main-menu ul li.primary .button-group.hollow a.light-gray:focus {
    border-color: #6c6c90;
    color: #6c6c90; }
  .button-group.hollow.medium-gray .button, .button-group.hollow.medium-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.medium-gray a, .button-group.hollow.medium-gray .button.disabled, .button-group.hollow.medium-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.medium-gray a.disabled, .button-group.hollow.medium-gray .button[disabled], .button-group.hollow.medium-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.medium-gray a[disabled], .button-group.hollow.medium-gray .button.disabled:hover, .button-group.hollow.medium-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.medium-gray a.disabled:hover, .button-group.hollow.medium-gray .button[disabled]:hover, .button-group.hollow.medium-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.medium-gray a[disabled]:hover, .button-group.hollow.medium-gray .button.disabled:focus, .button-group.hollow.medium-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.medium-gray a.disabled:focus, .button-group.hollow.medium-gray .button[disabled]:focus, .button-group.hollow.medium-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.medium-gray a[disabled]:focus, .button-group.hollow .button.medium-gray, .button-group.hollow #header #main-menu ul li.primary a.medium-gray, #header #main-menu ul li.primary .button-group.hollow a.medium-gray, .button-group.hollow .button.medium-gray.disabled, .button-group.hollow #header #main-menu ul li.primary a.medium-gray.disabled, #header #main-menu ul li.primary .button-group.hollow a.medium-gray.disabled, .button-group.hollow .button.medium-gray[disabled], .button-group.hollow #header #main-menu ul li.primary a.medium-gray[disabled], #header #main-menu ul li.primary .button-group.hollow a.medium-gray[disabled], .button-group.hollow .button.medium-gray.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.medium-gray.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.medium-gray.disabled:hover, .button-group.hollow .button.medium-gray[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.medium-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.medium-gray[disabled]:hover, .button-group.hollow .button.medium-gray.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.medium-gray.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.medium-gray.disabled:focus, .button-group.hollow .button.medium-gray[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.medium-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.medium-gray[disabled]:focus {
    border: 1px solid #c1c1d0;
    color: #c1c1d0; }
  .button-group.hollow.medium-gray .button:hover, .button-group.hollow.medium-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.medium-gray a:hover, .button-group.hollow.medium-gray .button:focus, .button-group.hollow.medium-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.medium-gray a:focus, .button-group.hollow .button.medium-gray:hover, .button-group.hollow #header #main-menu ul li.primary a.medium-gray:hover, #header #main-menu ul li.primary .button-group.hollow a.medium-gray:hover, .button-group.hollow .button.medium-gray:focus, .button-group.hollow #header #main-menu ul li.primary a.medium-gray:focus, #header #main-menu ul li.primary .button-group.hollow a.medium-gray:focus {
    border-color: #565673;
    color: #565673; }
  .button-group.hollow.dark-gray .button, .button-group.hollow.dark-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.dark-gray a, .button-group.hollow.dark-gray .button.disabled, .button-group.hollow.dark-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.dark-gray a.disabled, .button-group.hollow.dark-gray .button[disabled], .button-group.hollow.dark-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.dark-gray a[disabled], .button-group.hollow.dark-gray .button.disabled:hover, .button-group.hollow.dark-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.dark-gray a.disabled:hover, .button-group.hollow.dark-gray .button[disabled]:hover, .button-group.hollow.dark-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.dark-gray a[disabled]:hover, .button-group.hollow.dark-gray .button.disabled:focus, .button-group.hollow.dark-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.dark-gray a.disabled:focus, .button-group.hollow.dark-gray .button[disabled]:focus, .button-group.hollow.dark-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.dark-gray a[disabled]:focus, .button-group.hollow .button.dark-gray, .button-group.hollow #header #main-menu ul li.primary a.dark-gray, #header #main-menu ul li.primary .button-group.hollow a.dark-gray, .button-group.hollow .button.dark-gray.disabled, .button-group.hollow #header #main-menu ul li.primary a.dark-gray.disabled, #header #main-menu ul li.primary .button-group.hollow a.dark-gray.disabled, .button-group.hollow .button.dark-gray[disabled], .button-group.hollow #header #main-menu ul li.primary a.dark-gray[disabled], #header #main-menu ul li.primary .button-group.hollow a.dark-gray[disabled], .button-group.hollow .button.dark-gray.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.dark-gray.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.dark-gray.disabled:hover, .button-group.hollow .button.dark-gray[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.dark-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.dark-gray[disabled]:hover, .button-group.hollow .button.dark-gray.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.dark-gray.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.dark-gray.disabled:focus, .button-group.hollow .button.dark-gray[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.dark-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.dark-gray[disabled]:focus {
    border: 1px solid #545471;
    color: #545471; }
  .button-group.hollow.dark-gray .button:hover, .button-group.hollow.dark-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.dark-gray a:hover, .button-group.hollow.dark-gray .button:focus, .button-group.hollow.dark-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.dark-gray a:focus, .button-group.hollow .button.dark-gray:hover, .button-group.hollow #header #main-menu ul li.primary a.dark-gray:hover, #header #main-menu ul li.primary .button-group.hollow a.dark-gray:hover, .button-group.hollow .button.dark-gray:focus, .button-group.hollow #header #main-menu ul li.primary a.dark-gray:focus, #header #main-menu ul li.primary .button-group.hollow a.dark-gray:focus {
    border-color: #2a2a38;
    color: #2a2a38; }
  .button-group.hollow.black .button, .button-group.hollow.black #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.black a, .button-group.hollow.black .button.disabled, .button-group.hollow.black #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.black a.disabled, .button-group.hollow.black .button[disabled], .button-group.hollow.black #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.black a[disabled], .button-group.hollow.black .button.disabled:hover, .button-group.hollow.black #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.black a.disabled:hover, .button-group.hollow.black .button[disabled]:hover, .button-group.hollow.black #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.black a[disabled]:hover, .button-group.hollow.black .button.disabled:focus, .button-group.hollow.black #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.black a.disabled:focus, .button-group.hollow.black .button[disabled]:focus, .button-group.hollow.black #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.black a[disabled]:focus, .button-group.hollow .button.black, .button-group.hollow #header #main-menu ul li.primary a.black, #header #main-menu ul li.primary .button-group.hollow a.black, .button-group.hollow .button.black.disabled, .button-group.hollow #header #main-menu ul li.primary a.black.disabled, #header #main-menu ul li.primary .button-group.hollow a.black.disabled, .button-group.hollow .button.black[disabled], .button-group.hollow #header #main-menu ul li.primary a.black[disabled], #header #main-menu ul li.primary .button-group.hollow a.black[disabled], .button-group.hollow .button.black.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.black.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.black.disabled:hover, .button-group.hollow .button.black[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.black[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.black[disabled]:hover, .button-group.hollow .button.black.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.black.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.black.disabled:focus, .button-group.hollow .button.black[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.black[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.black[disabled]:focus {
    border: 1px solid #000000;
    color: #000000; }
  .button-group.hollow.black .button:hover, .button-group.hollow.black #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.black a:hover, .button-group.hollow.black .button:focus, .button-group.hollow.black #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.black a:focus, .button-group.hollow .button.black:hover, .button-group.hollow #header #main-menu ul li.primary a.black:hover, #header #main-menu ul li.primary .button-group.hollow a.black:hover, .button-group.hollow .button.black:focus, .button-group.hollow #header #main-menu ul li.primary a.black:focus, #header #main-menu ul li.primary .button-group.hollow a.black:focus {
    border-color: black;
    color: black; }
  .button-group.hollow.white .button, .button-group.hollow.white #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.hollow.white a, .button-group.hollow.white .button.disabled, .button-group.hollow.white #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.hollow.white a.disabled, .button-group.hollow.white .button[disabled], .button-group.hollow.white #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.hollow.white a[disabled], .button-group.hollow.white .button.disabled:hover, .button-group.hollow.white #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.hollow.white a.disabled:hover, .button-group.hollow.white .button[disabled]:hover, .button-group.hollow.white #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow.white a[disabled]:hover, .button-group.hollow.white .button.disabled:focus, .button-group.hollow.white #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.hollow.white a.disabled:focus, .button-group.hollow.white .button[disabled]:focus, .button-group.hollow.white #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow.white a[disabled]:focus, .button-group.hollow .button.white, .button-group.hollow #header #main-menu ul li.primary a.white, #header #main-menu ul li.primary .button-group.hollow a.white, .button-group.hollow .button.white.disabled, .button-group.hollow #header #main-menu ul li.primary a.white.disabled, #header #main-menu ul li.primary .button-group.hollow a.white.disabled, .button-group.hollow .button.white[disabled], .button-group.hollow #header #main-menu ul li.primary a.white[disabled], #header #main-menu ul li.primary .button-group.hollow a.white[disabled], .button-group.hollow .button.white.disabled:hover, .button-group.hollow #header #main-menu ul li.primary a.white.disabled:hover, #header #main-menu ul li.primary .button-group.hollow a.white.disabled:hover, .button-group.hollow .button.white[disabled]:hover, .button-group.hollow #header #main-menu ul li.primary a.white[disabled]:hover, #header #main-menu ul li.primary .button-group.hollow a.white[disabled]:hover, .button-group.hollow .button.white.disabled:focus, .button-group.hollow #header #main-menu ul li.primary a.white.disabled:focus, #header #main-menu ul li.primary .button-group.hollow a.white.disabled:focus, .button-group.hollow .button.white[disabled]:focus, .button-group.hollow #header #main-menu ul li.primary a.white[disabled]:focus, #header #main-menu ul li.primary .button-group.hollow a.white[disabled]:focus {
    border: 1px solid #fefefe;
    color: #fefefe; }
  .button-group.hollow.white .button:hover, .button-group.hollow.white #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.hollow.white a:hover, .button-group.hollow.white .button:focus, .button-group.hollow.white #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.hollow.white a:focus, .button-group.hollow .button.white:hover, .button-group.hollow #header #main-menu ul li.primary a.white:hover, #header #main-menu ul li.primary .button-group.hollow a.white:hover, .button-group.hollow .button.white:focus, .button-group.hollow #header #main-menu ul li.primary a.white:focus, #header #main-menu ul li.primary .button-group.hollow a.white:focus {
    border-color: #7f7f7f;
    color: #7f7f7f; }
  .button-group.clear .button, .button-group.clear #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear a, .button-group.clear body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.clear a, .button-group.clear .button:hover, .button-group.clear #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear a:hover, .button-group.clear .button:focus, .button-group.clear #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear a:focus, .button-group.clear .button.disabled, .button-group.clear #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear a.disabled, .button-group.clear .button.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.disabled:focus, .button-group.clear .button[disabled], .button-group.clear #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear a[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a[disabled]:hover, .button-group.clear .button[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button-group.clear .button, .button-group.clear #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear a, .button-group.clear body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.clear a, .button-group.clear .button.disabled, .button-group.clear #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear a.disabled, .button-group.clear .button[disabled], .button-group.clear #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear a[disabled], .button-group.clear .button.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.disabled:focus, .button-group.clear .button[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a[disabled]:focus {
    color: #8ABD24; }
  .button-group.clear .button:hover, .button-group.clear #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear a:hover, .button-group.clear .button:focus, .button-group.clear #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear a:focus {
    color: #455f12; }
  .button-group.clear.primary .button, .button-group.clear.primary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.primary a, .button-group.clear.primary .button.disabled, .button-group.clear.primary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.primary a.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.primary a[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.primary a.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.primary a[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.primary a.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear.primary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.primary a[disabled]:focus, .button-group.clear .button.primary, .button-group.clear #header #main-menu ul li.primary a.primary, #header #main-menu ul li.primary .button-group.clear a.primary, .button-group.clear .button.primary.disabled, .button-group.clear #header #main-menu ul li.primary a.primary.disabled, #header #main-menu ul li.primary .button-group.clear a.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear #header #main-menu ul li.primary a.primary[disabled], #header #main-menu ul li.primary .button-group.clear a.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.primary.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.primary[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.primary.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.primary[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.primary[disabled]:focus {
    color: #FA6400; }
  .button-group.clear.primary .button:hover, .button-group.clear.primary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.primary a:hover, .button-group.clear.primary .button:focus, .button-group.clear.primary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.primary a:focus, .button-group.clear .button.primary:hover, .button-group.clear #header #main-menu ul li.primary a.primary:hover, #header #main-menu ul li.primary .button-group.clear a.primary:hover, .button-group.clear .button.primary:focus, .button-group.clear #header #main-menu ul li.primary a.primary:focus, #header #main-menu ul li.primary .button-group.clear a.primary:focus {
    color: #7d3200; }
  .button-group.clear.secondary .button, .button-group.clear.secondary #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.secondary a, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.secondary a.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.secondary a[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.secondary a.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.secondary a[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.secondary a.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear.secondary #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.secondary a[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear #header #main-menu ul li.primary a.secondary, #header #main-menu ul li.primary .button-group.clear a.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear #header #main-menu ul li.primary a.secondary.disabled, #header #main-menu ul li.primary .button-group.clear a.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear #header #main-menu ul li.primary a.secondary[disabled], #header #main-menu ul li.primary .button-group.clear a.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.secondary.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.secondary[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.secondary.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.secondary[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.secondary[disabled]:focus {
    color: #000000; }
  .button-group.clear.secondary .button:hover, .button-group.clear.secondary #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.secondary a:hover, .button-group.clear.secondary .button:focus, .button-group.clear.secondary #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.secondary a:focus, .button-group.clear .button.secondary:hover, .button-group.clear #header #main-menu ul li.primary a.secondary:hover, #header #main-menu ul li.primary .button-group.clear a.secondary:hover, .button-group.clear .button.secondary:focus, .button-group.clear #header #main-menu ul li.primary a.secondary:focus, #header #main-menu ul li.primary .button-group.clear a.secondary:focus {
    color: black; }
  .button-group.clear.success .button, .button-group.clear.success #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.success a, .button-group.clear.success .button.disabled, .button-group.clear.success #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.success a.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.success a[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.success a.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.success a[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.success a.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear.success #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.success a[disabled]:focus, .button-group.clear .button.success, .button-group.clear #header #main-menu ul li.primary a.success, #header #main-menu ul li.primary .button-group.clear a.success, .button-group.clear .button.success.disabled, .button-group.clear #header #main-menu ul li.primary a.success.disabled, #header #main-menu ul li.primary .button-group.clear a.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear #header #main-menu ul li.primary a.success[disabled], #header #main-menu ul li.primary .button-group.clear a.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.success.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.success[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.success.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.success.disabled:focus, .button-group.clear .button.success[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.success[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.success[disabled]:focus {
    color: #8ABD24; }
  .button-group.clear.success .button:hover, .button-group.clear.success #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.success a:hover, .button-group.clear.success .button:focus, .button-group.clear.success #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.success a:focus, .button-group.clear .button.success:hover, .button-group.clear #header #main-menu ul li.primary a.success:hover, #header #main-menu ul li.primary .button-group.clear a.success:hover, .button-group.clear .button.success:focus, .button-group.clear #header #main-menu ul li.primary a.success:focus, #header #main-menu ul li.primary .button-group.clear a.success:focus {
    color: #455f12; }
  .button-group.clear.warning .button, .button-group.clear.warning #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.warning a, .button-group.clear.warning .button.disabled, .button-group.clear.warning #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.warning a.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.warning a[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.warning a.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.warning a[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.warning a.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear.warning #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.warning a[disabled]:focus, .button-group.clear .button.warning, .button-group.clear #header #main-menu ul li.primary a.warning, #header #main-menu ul li.primary .button-group.clear a.warning, .button-group.clear .button.warning.disabled, .button-group.clear #header #main-menu ul li.primary a.warning.disabled, #header #main-menu ul li.primary .button-group.clear a.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear #header #main-menu ul li.primary a.warning[disabled], #header #main-menu ul li.primary .button-group.clear a.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.warning.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.warning[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.warning.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.warning[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.warning[disabled]:focus {
    color: #ffae00; }
  .button-group.clear.warning .button:hover, .button-group.clear.warning #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.warning a:hover, .button-group.clear.warning .button:focus, .button-group.clear.warning #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.warning a:focus, .button-group.clear .button.warning:hover, .button-group.clear #header #main-menu ul li.primary a.warning:hover, #header #main-menu ul li.primary .button-group.clear a.warning:hover, .button-group.clear .button.warning:focus, .button-group.clear #header #main-menu ul li.primary a.warning:focus, #header #main-menu ul li.primary .button-group.clear a.warning:focus {
    color: #805700; }
  .button-group.clear.alert .button, .button-group.clear.alert #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.alert a, .button-group.clear.alert .button.disabled, .button-group.clear.alert #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.alert a.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.alert a[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.alert a.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.alert a[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.alert a.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear.alert #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.alert a[disabled]:focus, .button-group.clear .button.alert, .button-group.clear #header #main-menu ul li.primary a.alert, #header #main-menu ul li.primary .button-group.clear a.alert, .button-group.clear .button.alert.disabled, .button-group.clear #header #main-menu ul li.primary a.alert.disabled, #header #main-menu ul li.primary .button-group.clear a.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear #header #main-menu ul li.primary a.alert[disabled], #header #main-menu ul li.primary .button-group.clear a.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.alert.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.alert[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.alert.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.alert[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.alert[disabled]:focus {
    color: #cc4b37; }
  .button-group.clear.alert .button:hover, .button-group.clear.alert #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.alert a:hover, .button-group.clear.alert .button:focus, .button-group.clear.alert #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.alert a:focus, .button-group.clear .button.alert:hover, .button-group.clear #header #main-menu ul li.primary a.alert:hover, #header #main-menu ul li.primary .button-group.clear a.alert:hover, .button-group.clear .button.alert:focus, .button-group.clear #header #main-menu ul li.primary a.alert:focus, #header #main-menu ul li.primary .button-group.clear a.alert:focus {
    color: #67251a; }
  .button-group.clear.light-gray .button, .button-group.clear.light-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.light-gray a, .button-group.clear.light-gray .button.disabled, .button-group.clear.light-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.light-gray a.disabled, .button-group.clear.light-gray .button[disabled], .button-group.clear.light-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.light-gray a[disabled], .button-group.clear.light-gray .button.disabled:hover, .button-group.clear.light-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.light-gray a.disabled:hover, .button-group.clear.light-gray .button[disabled]:hover, .button-group.clear.light-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.light-gray a[disabled]:hover, .button-group.clear.light-gray .button.disabled:focus, .button-group.clear.light-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.light-gray a.disabled:focus, .button-group.clear.light-gray .button[disabled]:focus, .button-group.clear.light-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.light-gray a[disabled]:focus, .button-group.clear .button.light-gray, .button-group.clear #header #main-menu ul li.primary a.light-gray, #header #main-menu ul li.primary .button-group.clear a.light-gray, .button-group.clear .button.light-gray.disabled, .button-group.clear #header #main-menu ul li.primary a.light-gray.disabled, #header #main-menu ul li.primary .button-group.clear a.light-gray.disabled, .button-group.clear .button.light-gray[disabled], .button-group.clear #header #main-menu ul li.primary a.light-gray[disabled], #header #main-menu ul li.primary .button-group.clear a.light-gray[disabled], .button-group.clear .button.light-gray.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.light-gray.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.light-gray.disabled:hover, .button-group.clear .button.light-gray[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.light-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.light-gray[disabled]:hover, .button-group.clear .button.light-gray.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.light-gray.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.light-gray.disabled:focus, .button-group.clear .button.light-gray[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.light-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.light-gray[disabled]:focus {
    color: #FBFBFC; }
  .button-group.clear.light-gray .button:hover, .button-group.clear.light-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.light-gray a:hover, .button-group.clear.light-gray .button:focus, .button-group.clear.light-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.light-gray a:focus, .button-group.clear .button.light-gray:hover, .button-group.clear #header #main-menu ul li.primary a.light-gray:hover, #header #main-menu ul li.primary .button-group.clear a.light-gray:hover, .button-group.clear .button.light-gray:focus, .button-group.clear #header #main-menu ul li.primary a.light-gray:focus, #header #main-menu ul li.primary .button-group.clear a.light-gray:focus {
    color: #6c6c90; }
  .button-group.clear.medium-gray .button, .button-group.clear.medium-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.medium-gray a, .button-group.clear.medium-gray .button.disabled, .button-group.clear.medium-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.medium-gray a.disabled, .button-group.clear.medium-gray .button[disabled], .button-group.clear.medium-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.medium-gray a[disabled], .button-group.clear.medium-gray .button.disabled:hover, .button-group.clear.medium-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.medium-gray a.disabled:hover, .button-group.clear.medium-gray .button[disabled]:hover, .button-group.clear.medium-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.medium-gray a[disabled]:hover, .button-group.clear.medium-gray .button.disabled:focus, .button-group.clear.medium-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.medium-gray a.disabled:focus, .button-group.clear.medium-gray .button[disabled]:focus, .button-group.clear.medium-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.medium-gray a[disabled]:focus, .button-group.clear .button.medium-gray, .button-group.clear #header #main-menu ul li.primary a.medium-gray, #header #main-menu ul li.primary .button-group.clear a.medium-gray, .button-group.clear .button.medium-gray.disabled, .button-group.clear #header #main-menu ul li.primary a.medium-gray.disabled, #header #main-menu ul li.primary .button-group.clear a.medium-gray.disabled, .button-group.clear .button.medium-gray[disabled], .button-group.clear #header #main-menu ul li.primary a.medium-gray[disabled], #header #main-menu ul li.primary .button-group.clear a.medium-gray[disabled], .button-group.clear .button.medium-gray.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.medium-gray.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.medium-gray.disabled:hover, .button-group.clear .button.medium-gray[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.medium-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.medium-gray[disabled]:hover, .button-group.clear .button.medium-gray.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.medium-gray.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.medium-gray.disabled:focus, .button-group.clear .button.medium-gray[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.medium-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.medium-gray[disabled]:focus {
    color: #c1c1d0; }
  .button-group.clear.medium-gray .button:hover, .button-group.clear.medium-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.medium-gray a:hover, .button-group.clear.medium-gray .button:focus, .button-group.clear.medium-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.medium-gray a:focus, .button-group.clear .button.medium-gray:hover, .button-group.clear #header #main-menu ul li.primary a.medium-gray:hover, #header #main-menu ul li.primary .button-group.clear a.medium-gray:hover, .button-group.clear .button.medium-gray:focus, .button-group.clear #header #main-menu ul li.primary a.medium-gray:focus, #header #main-menu ul li.primary .button-group.clear a.medium-gray:focus {
    color: #565673; }
  .button-group.clear.dark-gray .button, .button-group.clear.dark-gray #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.dark-gray a, .button-group.clear.dark-gray .button.disabled, .button-group.clear.dark-gray #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.dark-gray a.disabled, .button-group.clear.dark-gray .button[disabled], .button-group.clear.dark-gray #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.dark-gray a[disabled], .button-group.clear.dark-gray .button.disabled:hover, .button-group.clear.dark-gray #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.dark-gray a.disabled:hover, .button-group.clear.dark-gray .button[disabled]:hover, .button-group.clear.dark-gray #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.dark-gray a[disabled]:hover, .button-group.clear.dark-gray .button.disabled:focus, .button-group.clear.dark-gray #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.dark-gray a.disabled:focus, .button-group.clear.dark-gray .button[disabled]:focus, .button-group.clear.dark-gray #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.dark-gray a[disabled]:focus, .button-group.clear .button.dark-gray, .button-group.clear #header #main-menu ul li.primary a.dark-gray, #header #main-menu ul li.primary .button-group.clear a.dark-gray, .button-group.clear .button.dark-gray.disabled, .button-group.clear #header #main-menu ul li.primary a.dark-gray.disabled, #header #main-menu ul li.primary .button-group.clear a.dark-gray.disabled, .button-group.clear .button.dark-gray[disabled], .button-group.clear #header #main-menu ul li.primary a.dark-gray[disabled], #header #main-menu ul li.primary .button-group.clear a.dark-gray[disabled], .button-group.clear .button.dark-gray.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.dark-gray.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.dark-gray.disabled:hover, .button-group.clear .button.dark-gray[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.dark-gray[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.dark-gray[disabled]:hover, .button-group.clear .button.dark-gray.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.dark-gray.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.dark-gray.disabled:focus, .button-group.clear .button.dark-gray[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.dark-gray[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.dark-gray[disabled]:focus {
    color: #545471; }
  .button-group.clear.dark-gray .button:hover, .button-group.clear.dark-gray #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.dark-gray a:hover, .button-group.clear.dark-gray .button:focus, .button-group.clear.dark-gray #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.dark-gray a:focus, .button-group.clear .button.dark-gray:hover, .button-group.clear #header #main-menu ul li.primary a.dark-gray:hover, #header #main-menu ul li.primary .button-group.clear a.dark-gray:hover, .button-group.clear .button.dark-gray:focus, .button-group.clear #header #main-menu ul li.primary a.dark-gray:focus, #header #main-menu ul li.primary .button-group.clear a.dark-gray:focus {
    color: #2a2a38; }
  .button-group.clear.black .button, .button-group.clear.black #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.black a, .button-group.clear.black .button.disabled, .button-group.clear.black #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.black a.disabled, .button-group.clear.black .button[disabled], .button-group.clear.black #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.black a[disabled], .button-group.clear.black .button.disabled:hover, .button-group.clear.black #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.black a.disabled:hover, .button-group.clear.black .button[disabled]:hover, .button-group.clear.black #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.black a[disabled]:hover, .button-group.clear.black .button.disabled:focus, .button-group.clear.black #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.black a.disabled:focus, .button-group.clear.black .button[disabled]:focus, .button-group.clear.black #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.black a[disabled]:focus, .button-group.clear .button.black, .button-group.clear #header #main-menu ul li.primary a.black, #header #main-menu ul li.primary .button-group.clear a.black, .button-group.clear .button.black.disabled, .button-group.clear #header #main-menu ul li.primary a.black.disabled, #header #main-menu ul li.primary .button-group.clear a.black.disabled, .button-group.clear .button.black[disabled], .button-group.clear #header #main-menu ul li.primary a.black[disabled], #header #main-menu ul li.primary .button-group.clear a.black[disabled], .button-group.clear .button.black.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.black.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.black.disabled:hover, .button-group.clear .button.black[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.black[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.black[disabled]:hover, .button-group.clear .button.black.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.black.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.black.disabled:focus, .button-group.clear .button.black[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.black[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.black[disabled]:focus {
    color: #000000; }
  .button-group.clear.black .button:hover, .button-group.clear.black #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.black a:hover, .button-group.clear.black .button:focus, .button-group.clear.black #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.black a:focus, .button-group.clear .button.black:hover, .button-group.clear #header #main-menu ul li.primary a.black:hover, #header #main-menu ul li.primary .button-group.clear a.black:hover, .button-group.clear .button.black:focus, .button-group.clear #header #main-menu ul li.primary a.black:focus, #header #main-menu ul li.primary .button-group.clear a.black:focus {
    color: black; }
  .button-group.clear.white .button, .button-group.clear.white #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.clear.white a, .button-group.clear.white .button.disabled, .button-group.clear.white #header #main-menu ul li.primary a.disabled, #header #main-menu ul li.primary .button-group.clear.white a.disabled, .button-group.clear.white .button[disabled], .button-group.clear.white #header #main-menu ul li.primary a[disabled], #header #main-menu ul li.primary .button-group.clear.white a[disabled], .button-group.clear.white .button.disabled:hover, .button-group.clear.white #header #main-menu ul li.primary a.disabled:hover, #header #main-menu ul li.primary .button-group.clear.white a.disabled:hover, .button-group.clear.white .button[disabled]:hover, .button-group.clear.white #header #main-menu ul li.primary a[disabled]:hover, #header #main-menu ul li.primary .button-group.clear.white a[disabled]:hover, .button-group.clear.white .button.disabled:focus, .button-group.clear.white #header #main-menu ul li.primary a.disabled:focus, #header #main-menu ul li.primary .button-group.clear.white a.disabled:focus, .button-group.clear.white .button[disabled]:focus, .button-group.clear.white #header #main-menu ul li.primary a[disabled]:focus, #header #main-menu ul li.primary .button-group.clear.white a[disabled]:focus, .button-group.clear .button.white, .button-group.clear #header #main-menu ul li.primary a.white, #header #main-menu ul li.primary .button-group.clear a.white, .button-group.clear .button.white.disabled, .button-group.clear #header #main-menu ul li.primary a.white.disabled, #header #main-menu ul li.primary .button-group.clear a.white.disabled, .button-group.clear .button.white[disabled], .button-group.clear #header #main-menu ul li.primary a.white[disabled], #header #main-menu ul li.primary .button-group.clear a.white[disabled], .button-group.clear .button.white.disabled:hover, .button-group.clear #header #main-menu ul li.primary a.white.disabled:hover, #header #main-menu ul li.primary .button-group.clear a.white.disabled:hover, .button-group.clear .button.white[disabled]:hover, .button-group.clear #header #main-menu ul li.primary a.white[disabled]:hover, #header #main-menu ul li.primary .button-group.clear a.white[disabled]:hover, .button-group.clear .button.white.disabled:focus, .button-group.clear #header #main-menu ul li.primary a.white.disabled:focus, #header #main-menu ul li.primary .button-group.clear a.white.disabled:focus, .button-group.clear .button.white[disabled]:focus, .button-group.clear #header #main-menu ul li.primary a.white[disabled]:focus, #header #main-menu ul li.primary .button-group.clear a.white[disabled]:focus {
    color: #fefefe; }
  .button-group.clear.white .button:hover, .button-group.clear.white #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .button-group.clear.white a:hover, .button-group.clear.white .button:focus, .button-group.clear.white #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .button-group.clear.white a:focus, .button-group.clear .button.white:hover, .button-group.clear #header #main-menu ul li.primary a.white:hover, #header #main-menu ul li.primary .button-group.clear a.white:hover, .button-group.clear .button.white:focus, .button-group.clear #header #main-menu ul li.primary a.white:focus, #header #main-menu ul li.primary .button-group.clear a.white:focus {
    color: #7f7f7f; }
  .button-group.no-gaps .button, .button-group.no-gaps #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.no-gaps a, .button-group.no-gaps body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.no-gaps a {
    margin-right: -0.0625rem; }
    .button-group.no-gaps .button + .button, .button-group.no-gaps #header #main-menu ul li.primary a + .button, #header #main-menu ul li.primary .button-group.no-gaps a + .button, .button-group.no-gaps #header #main-menu ul li.primary .button + a, #header #main-menu ul li.primary .button-group.no-gaps .button + a, .button-group.no-gaps #header #main-menu ul li.primary a + a, #header #main-menu ul li.primary .button-group.no-gaps a + a {
      border-left-color: transparent; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked a, .button-group.stacked body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.stacked a, .button-group.stacked-for-small .button, .button-group.stacked-for-small #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-small a, .button-group.stacked-for-small body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.stacked-for-small a, .button-group.stacked-for-medium .button, .button-group.stacked-for-medium #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-medium a, .button-group.stacked-for-medium body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.stacked-for-medium a {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked #header #main-menu ul li.primary a:last-child, #header #main-menu ul li.primary .button-group.stacked a:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-small #header #main-menu ul li.primary a:last-child, #header #main-menu ul li.primary .button-group.stacked-for-small a:last-child, .button-group.stacked-for-medium .button:last-child, .button-group.stacked-for-medium #header #main-menu ul li.primary a:last-child, #header #main-menu ul li.primary .button-group.stacked-for-medium a:last-child {
        margin-bottom: 0; }
    .button-group.stacked.expanded .button, .button-group.stacked.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked.expanded a, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-small.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-small.expanded a, .button-group.stacked-for-medium.expanded .button, .button-group.stacked-for-medium.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-medium.expanded a {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
  @media print, screen and (min-width: 62.5em) {
    .button-group.stacked-for-small .button, .button-group.stacked-for-small #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-small a, .button-group.stacked-for-small body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.stacked-for-small a {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 75em) {
    .button-group.stacked-for-medium .button, .button-group.stacked-for-medium #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-medium a, .button-group.stacked-for-medium body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .button-group.stacked-for-medium a {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (max-width: 62.49875em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-small.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-small.expanded a {
        display: block;
        margin-right: 0; } }
  @media print, screen and (max-width: 74.99875em) {
    .button-group.stacked-for-medium.expanded {
      display: block; }
      .button-group.stacked-for-medium.expanded .button, .button-group.stacked-for-medium.expanded #header #main-menu ul li.primary a, #header #main-menu ul li.primary .button-group.stacked-for-medium.expanded a {
        display: block;
        margin-right: 0; } }

.close-button {
  position: absolute;
  z-index: 10;
  color: #545471;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #000000; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #FA6400;
  color: #fefefe; }
  .label.primary {
    background: #FA6400;
    color: #000000; }
  .label.secondary {
    background: #000000;
    color: #fefefe; }
  .label.success {
    background: #8ABD24;
    color: #000000; }
  .label.warning {
    background: #ffae00;
    color: #000000; }
  .label.alert {
    background: #cc4b37;
    color: #000000; }
  .label.light-gray {
    background: #FBFBFC;
    color: #000000; }
  .label.medium-gray {
    background: #c1c1d0;
    color: #000000; }
  .label.dark-gray {
    background: #545471;
    color: #fefefe; }
  .label.black {
    background: #000000;
    color: #fefefe; }
  .label.white {
    background: #fefefe;
    color: #000000; }

.progress {
  height: 1rem;
  margin-bottom: 1.5rem;
  border-radius: 0;
  background-color: #c1c1d0; }
  .progress.primary .progress-meter {
    background-color: #FA6400; }
  .progress.secondary .progress-meter {
    background-color: #000000; }
  .progress.success .progress-meter {
    background-color: #8ABD24; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }
  .progress.light-gray .progress-meter {
    background-color: #FBFBFC; }
  .progress.medium-gray .progress-meter {
    background-color: #c1c1d0; }
  .progress.dark-gray .progress-meter {
    background-color: #545471; }
  .progress.black .progress-meter {
    background-color: #000000; }
  .progress.white .progress-meter {
    background-color: #fefefe; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #FA6400; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.switch {
  position: relative;
  margin-bottom: 1.5rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  height: 2rem; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #c1c1d0;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    -webkit-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #FA6400; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  input:disabled ~ .switch-paddle {
    cursor: not-allowed;
    opacity: 0.5; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  thead {
    background: #f8f8f8;
    color: #000000; }
  tfoot {
    background: #f1f1f1;
    color: #000000; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

@media print, screen and (max-width: 74.99875em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f3f3f3; }

table.hover tfoot tr:hover {
  background-color: #ececec; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }

.breadcrumbs {
  margin: 0 0 1.5rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #000000;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #c1c1d0; }
  .breadcrumbs a {
    color: #FA6400; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #c1c1d0;
    cursor: not-allowed; }

.card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 2.25rem;
  border: px solid #FBFBFC;
  border-radius: 0;
  background: #fefefe;
  -webkit-box-shadow: 0px 10px 30px -25px rgba(0, 0, 0, 0.75);
          box-shadow: 0px 10px 30px -25px rgba(0, 0, 0, 0.75);
  overflow: hidden;
  color: #000000; }
  .card > :last-child {
    margin-bottom: 0; }

.card-divider {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  padding: 1.5rem;
  background: #FBFBFC; }
  .card-divider > :last-child {
    margin-bottom: 0; }

.card-section {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  padding: 1.5rem; }
  .card-section > :last-child {
    margin-bottom: 0; }

.card-image {
  min-height: 1px; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: none;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #c1c1d0;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem; }
  .dropdown-pane.is-opening {
    display: block; }
  .dropdown-pane.is-open {
    display: block;
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.pagination {
  margin-left: 0;
  margin-bottom: 1.5rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 62.5em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button,
  .pagination .button,
  .pagination #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary .pagination a,
  .pagination body.scrolled #header.dark-text #main-menu ul li.primary a,
  body.scrolled #header.dark-text #main-menu ul li.primary .pagination a {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #000000; }
    .pagination a:hover,
    .pagination button:hover,
    .pagination .button:hover,
    .pagination #header #main-menu ul li.primary a:hover,
    #header #main-menu ul li.primary .pagination a:hover,
    .pagination body.scrolled #header.dark-text #main-menu ul li.primary a:hover,
    body.scrolled #header.dark-text #main-menu ul li.primary .pagination a:hover {
      background: #FBFBFC; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #FA6400;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #c1c1d0;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #000000; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: "«"; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: "»"; }

.accordion {
  margin-left: 0;
  background: #f4f4f7;
  list-style-type: none; }
  .accordion[disabled] .accordion-title {
    cursor: not-allowed; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.5rem;
  border: 10px solid #fefefe;
  border-bottom: 0;
  font-size: 1.875rem;
  line-height: 1;
  color: #000000; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 10px solid #fefefe;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #ececf1; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: "+"; }
  .is-active > .accordion-title::before {
    content: "–"; }

.accordion-content {
  display: none;
  padding: 1.5rem 3rem;
  border: 10px solid #fefefe;
  border-bottom: 0;
  background-color: #fefefe;
  color: #000000; }
  :last-child > .accordion-content:last-child {
    border-bottom: 10px solid #fefefe; }

.media-object {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1.5rem;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media print, screen and (max-width: 62.49875em) {
    .media-object.stack-for-small {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; } }

.media-object-section {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1.5rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1.5rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  @media print, screen and (max-width: 62.49875em) {
    .stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1.5rem;
      -webkit-flex-basis: 100%;
          -ms-flex-preferred-size: 100%;
              flex-basis: 100%;
      max-width: 100%; }
      .stack-for-small .media-object-section img {
        width: 100%; } }
  .media-object-section.main-section {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.tabs {
  margin: 0;
  border: 1px solid #FBFBFC;
  background: #fefefe;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #FA6400; }
  .tabs.primary > li > a {
    color: #000000; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #ee5f00; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #FA6400; }
    [data-whatinput='mouse'] .tabs-title > a {
      outline: 0; }
    .tabs-title > a:hover {
      background: #fefefe;
      color: #d75600; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #FBFBFC;
      color: #FA6400; }

.tabs-content {
  border: 1px solid #FBFBFC;
  border-top: 0;
  background: #fefefe;
  color: #000000;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #FBFBFC;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button,
  .menu #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary .menu a,
  .menu body.scrolled #header.dark-text #main-menu ul li.primary a,
  body.scrolled #header.dark-text #main-menu ul li.primary .menu a {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button,
  .menu .button,
  .menu #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary .menu a,
  .menu body.scrolled #header.dark-text #main-menu ul li.primary a,
  body.scrolled #header.dark-text #main-menu ul li.primary .menu a {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .menu.vertical {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    .menu.vertical.icon-top li a img,
    .menu.vertical.icon-top li a i,
    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,
    .menu.vertical.icon-bottom li a i,
    .menu.vertical.icon-bottom li a svg {
      text-align: left; }
  .menu.expanded li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.expanded.icon-top li a img,
  .menu.expanded.icon-top li a i,
  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,
  .menu.expanded.icon-bottom li a i,
  .menu.expanded.icon-bottom li a svg {
    text-align: left; }
  .menu.simple {
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 0; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 62.5em) {
    .menu.medium-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 75em) {
    .menu.large-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media screen and (min-width: 90em) {
    .menu.xlarge-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.xlarge-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.xlarge-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.xlarge-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media screen and (min-width: 105em) {
    .menu.xxlarge-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.xxlarge-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.xxlarge-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.xxlarge-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-left li a, .menu.nested.icon-left li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg, .menu.nested.icon-left li a img,
    .menu.nested.icon-left li a i,
    .menu.nested.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a, .menu.nested.icon-right li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg, .menu.nested.icon-right li a img,
    .menu.nested.icon-right li a i,
    .menu.nested.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a, .menu.nested.icon-top li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg, .menu.nested.icon-top li a img,
    .menu.nested.icon-top li a i,
    .menu.nested.icon-top li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,
    .menu.nested.icon-bottom li a i,
    .menu.nested.icon-bottom li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #FA6400;
    color: #000000; }
  .menu .active > a {
    background: #FA6400;
    color: #000000; }
  .menu.align-left {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right.icon-top li a img,
  .menu.align-right.icon-top li a i,
  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,
  .menu.align-right.icon-bottom li a i,
  .menu.align-right.icon-bottom li a svg {
    text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
            box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #c1c1d0;
    -webkit-box-shadow: 0 7px 0 #c1c1d0, 0 14px 0 #c1c1d0;
            box-shadow: 0 7px 0 #c1c1d0, 0 14px 0 #c1c1d0; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #000000;
    -webkit-box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
            box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #545471;
    -webkit-box-shadow: 0 7px 0 #545471, 0 14px 0 #545471;
            box-shadow: 0 7px 0 #545471, 0 14px 0 #545471; }

.accordion-menu li {
  width: 100%; }

.accordion-menu a {
  padding: 0.7rem 1rem; }

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem; }

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem; }

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0; }

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative; }
  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #FA6400 transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  right: 1rem;
  left: auto; }

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem; }

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.is-accordion-submenu-parent {
  position: relative; }

.has-submenu-toggle > a {
  margin-right: 40px; }

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer; }
  .submenu-toggle::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #FA6400 transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

.submenu-toggle[aria-expanded='true']::after {
  -webkit-transform: scaleY(-1);
      -ms-transform: scaleY(-1);
          transform: scaleY(-1);
  -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.submenu-toggle-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    -webkit-transition: height 0.5s;
    transition: height 0.5s; }

.drilldown a {
  padding: 0.7rem 1rem;
  background: #FA6400; }

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%; }

.drilldown .is-drilldown-submenu-parent > a {
  position: relative; }
  .drilldown .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #FA6400;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #fefefe;
  right: 1rem;
  left: auto; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px;
  content: '';
  border-left-width: 0;
  border-color: transparent #fefefe transparent transparent;
  right: auto;
  left: 1rem; }

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-left-width: 0;
  border-color: transparent #FA6400 transparent transparent;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px;
  content: '';
  border-bottom-width: 0;
  border-color: #fefefe transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -2px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu > li > a {
  padding: 0.7rem 1rem; }

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #fefefe; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px;
  content: '';
  border-left-width: 0;
  border-color: transparent #fefefe transparent transparent;
  right: auto;
  left: 5px; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #fefefe; }

@media print, screen and (min-width: 62.5em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -2px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-left-width: 0;
    border-color: transparent #fefefe transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #fefefe; } }

@media print, screen and (min-width: 75em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -2px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-left-width: 0;
    border-color: transparent #fefefe transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #fefefe; } }

@media screen and (min-width: 90em) {
  .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.xlarge-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -2px; }
  .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.xlarge-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.xlarge-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-left-width: 0;
    border-color: transparent #fefefe transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.xlarge-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #fefefe; } }

@media screen and (min-width: 105em) {
  .dropdown.menu.xxlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xxlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xxlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.xxlarge-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -2px; }
  .dropdown.menu.xxlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xxlarge-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.xxlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.xxlarge-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.xxlarge-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-left-width: 0;
    border-color: transparent #fefefe transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.xxlarge-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #fefefe; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    left: auto;
    margin-top: -4px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #c1c1d0;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-left-width: 0;
    border-color: transparent #fefefe transparent transparent;
    right: auto;
    left: 5px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 4px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #fefefe; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.top-bar {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #FA6400; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  @media print, screen and (min-width: 62.5em) {
    .top-bar {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
      .top-bar .top-bar-left {
        -webkit-box-flex: 1;
        -webkit-flex: 1 1 auto;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto;
        margin-right: auto; }
      .top-bar .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        margin-left: auto; } }
  @media print, screen and (max-width: 74.99875em) {
    .top-bar.stacked-for-medium {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media print, screen and (max-width: 89.99875em) {
    .top-bar.stacked-for-large {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media print, screen and (max-width: 104.99875em) {
    .top-bar.stacked-for-xlarge {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-xlarge .top-bar-left,
      .top-bar.stacked-for-xlarge .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  .top-bar.stacked-for-xxlarge {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .top-bar.stacked-for-xxlarge .top-bar-left,
    .top-bar.stacked-for-xxlarge .top-bar-right {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }

.top-bar-title {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0; }

.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

.align-left {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-justify {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.align-spaced {
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around; }

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-top {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start; }

.align-self-top {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start; }

.align-bottom {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end; }

.align-self-bottom {
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end; }

.align-middle {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.align-self-middle {
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center; }

.align-stretch {
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.align-self-stretch {
  -webkit-align-self: stretch;
      -ms-flex-item-align: stretch;
          align-self: stretch; }

.align-center-middle {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-align-content: center;
      -ms-flex-line-pack: center;
          align-content: center; }

.small-order-1 {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.small-order-2 {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2; }

.small-order-3 {
  -webkit-box-ordinal-group: 4;
  -webkit-order: 3;
      -ms-flex-order: 3;
          order: 3; }

.small-order-4 {
  -webkit-box-ordinal-group: 5;
  -webkit-order: 4;
      -ms-flex-order: 4;
          order: 4; }

.small-order-5 {
  -webkit-box-ordinal-group: 6;
  -webkit-order: 5;
      -ms-flex-order: 5;
          order: 5; }

.small-order-6 {
  -webkit-box-ordinal-group: 7;
  -webkit-order: 6;
      -ms-flex-order: 6;
          order: 6; }

@media print, screen and (min-width: 62.5em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media print, screen and (min-width: 75em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media screen and (min-width: 90em) {
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media screen and (min-width: 105em) {
  .xxlarge-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xxlarge-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xxlarge-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xxlarge-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xxlarge-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xxlarge-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

.flex-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

.flex-child-auto {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.flex-child-grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; }

.flex-child-shrink {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row; }

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

@media print, screen and (min-width: 62.5em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media print, screen and (min-width: 75em) {
  .large-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media screen and (min-width: 90em) {
  .xlarge-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .xlarge-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xlarge-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xlarge-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .xlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .xlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media screen and (min-width: 105em) {
  .xxlarge-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .xxlarge-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xxlarge-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xxlarge-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .xxlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xxlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .xxlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xxlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

.visible {
  visibility: visible; }

@media print, screen and (max-width: 62.49875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 62.5em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 62.5em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 62.49875em) {
  .show-for-medium {
    display: none !important; } }

@media print, screen and (min-width: 62.5em) and (max-width: 74.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 62.49875em), screen and (min-width: 75em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 75em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 74.99875em) {
  .show-for-large {
    display: none !important; } }

@media print, screen and (min-width: 75em) and (max-width: 89.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 74.99875em), screen and (min-width: 90em) {
  .show-for-large-only {
    display: none !important; } }

@media screen and (min-width: 90em) {
  .hide-for-xlarge {
    display: none !important; } }

@media screen and (max-width: 89.99875em) {
  .show-for-xlarge {
    display: none !important; } }

@media screen and (min-width: 90em) and (max-width: 104.99875em) {
  .hide-for-xlarge-only {
    display: none !important; } }

@media screen and (max-width: 89.99875em), screen and (min-width: 105em) {
  .show-for-xlarge-only {
    display: none !important; } }

@media screen and (min-width: 105em) {
  .hide-for-xxlarge {
    display: none !important; } }

@media screen and (max-width: 104.99875em) {
  .show-for-xxlarge {
    display: none !important; } }

@media screen and (min-width: 105em) {
  .hide-for-xxlarge-only {
    display: none !important; } }

@media screen and (max-width: 104.99875em) {
  .show-for-xxlarge-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.show-for-dark-mode {
  display: none; }

.hide-for-dark-mode {
  display: block; }

@media screen and (prefers-color-scheme: dark) {
  .show-for-dark-mode {
    display: block !important; }
  .hide-for-dark-mode {
    display: none !important; } }

.show-for-ie {
  display: none; }

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .show-for-ie {
    display: block !important; }
  .hide-for-ie {
    display: none !important; } }

.show-for-sticky {
  display: none; }

.is-stuck .show-for-sticky {
  display: block; }

.is-stuck .hide-for-sticky {
  display: none; }

.text-hide {
  font: 0/0 a !important;
  color: transparent !important;
  text-shadow: none !important;
  background-color: transparent !important;
  border: 0 !important; }

.text-truncate {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  white-space: nowrap !important; }

.text-nowrap {
  white-space: nowrap !important; }

.text-wrap {
  word-wrap: break-word !important; }

.text-lowercase {
  text-transform: lowercase !important; }

.text-uppercase {
  text-transform: uppercase !important; }

.text-capitalize {
  text-transform: capitalize !important; }

.text-overline {
  text-decoration: overline !important; }

.text-underline {
  text-decoration: underline !important; }

.text-line-through {
  text-decoration: line-through !important; }

.font-wide {
  letter-spacing: 0.25rem; }

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

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

.font-italic {
  font-style: italic !important; }

ul.list-disc {
  list-style-type: disc !important; }

ul.list-circle {
  list-style-type: circle !important; }

ul.list-square {
  list-style-type: square !important; }

ol.list-decimal {
  list-style-type: decimal !important; }

ol.list-lower-alpha {
  list-style-type: lower-alpha !important; }

ol.list-lower-latin {
  list-style-type: lower-latin !important; }

ol.list-lower-roman {
  list-style-type: lower-roman !important; }

ol.list-upper-alpha {
  list-style-type: upper-alpha !important; }

ol.list-upper-latin {
  list-style-type: upper-latin !important; }

ol.list-upper-roman {
  list-style-type: upper-roman !important; }

.rounded {
  border-radius: 5000px !important; }
  .rounded .switch-paddle {
    border-radius: 5000px !important; }
    .rounded .switch-paddle:after {
      border-radius: 50%; }

.radius {
  border-radius: 0.1875rem; }

.bordered {
  border: 0.0625rem solid #c1c1d0; }

.shadow {
  -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
          box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }

.arrow-down {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.4375rem;
  content: '';
  border-bottom-width: 0;
  border-color: #000000 transparent transparent; }

.arrow-up {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.4375rem;
  content: '';
  border-top-width: 0;
  border-color: transparent transparent #000000; }

.arrow-right {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.4375rem;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #000000; }

.arrow-left {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.4375rem;
  content: '';
  border-left-width: 0;
  border-color: transparent #000000 transparent transparent; }

.separator-center {
  text-align: center !important; }
  .separator-center::before, .separator-center::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .separator-center::after {
    clear: both; }
  .separator-center::after {
    position: relative !important;
    width: 3rem;
    border-bottom: 0.125rem solid #FA6400;
    margin: 1.5rem auto 0; }

.separator-left {
  text-align: left !important; }
  .separator-left::before, .separator-left::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .separator-left::after {
    clear: both; }
  .separator-left::after {
    position: relative !important;
    width: 3rem;
    border-bottom: 0.125rem solid #FA6400;
    margin: 1.5rem auto 0;
    margin-left: 0 !important; }

.separator-right {
  text-align: right !important; }
  .separator-right::before, .separator-right::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .separator-right::after {
    clear: both; }
  .separator-right::after {
    position: relative !important;
    width: 3rem;
    border-bottom: 0.125rem solid #FA6400;
    margin: 1.5rem auto 0;
    margin-right: 0 !important; }

.overflow-visible {
  overflow: visible !important; }

.overflow-x-visible {
  overflow-x: visible !important; }

.overflow-y-visible {
  overflow-y: visible !important; }

.overflow-hidden {
  overflow: hidden !important; }

.overflow-x-hidden {
  overflow-x: hidden !important; }

.overflow-y-hidden {
  overflow-y: hidden !important; }

.overflow-scroll {
  overflow: scroll !important;
  -webkit-overflow-scrolling: touch; }

.overflow-x-scroll {
  overflow-x: scroll !important;
  -webkit-overflow-scrolling: touch; }

.overflow-y-scroll {
  overflow-y: scroll !important;
  -webkit-overflow-scrolling: touch; }

.display-inline {
  display: inline !important; }

.display-inline-block {
  display: inline-block !important; }

.display-block {
  display: block !important; }

.display-table {
  display: table !important; }

.display-table-cell {
  display: table-cell !important; }

.position-static {
  position: static !important; }

.position-relative {
  position: relative !important; }

.position-absolute {
  position: absolute !important; }

.position-fixed {
  position: fixed !important; }

.position-fixed-top {
  position: fixed !important;
  top: 0rem !important;
  right: 0rem !important;
  left: 0rem !important;
  z-index: 975; }

.position-fixed-bottom {
  position: fixed !important;
  right: 0rem !important;
  bottom: 0rem !important;
  left: 0rem !important;
  z-index: 975; }

.border-box {
  -webkit-box-sizing: border-box !important;
          box-sizing: border-box !important; }

.border-none {
  border: 0 !important; }

.width-25 {
  width: 25% !important; }

.width-50 {
  width: 50% !important; }

.width-75 {
  width: 75% !important; }

.width-100 {
  width: 100% !important; }

.height-25 {
  height: 25% !important; }

.height-50 {
  height: 50% !important; }

.height-75 {
  height: 75% !important; }

.height-100 {
  height: 100% !important; }

.max-width-100 {
  max-width: 100% !important; }

.max-height-100 {
  max-height: 100% !important; }

.margin-0 {
  margin: 0rem !important; }

.margin-top-0 {
  margin-top: 0rem !important; }

.margin-right-0 {
  margin-right: 0rem !important; }

.margin-bottom-0 {
  margin-bottom: 0rem !important; }

.margin-left-0 {
  margin-left: 0rem !important; }

.margin-horizontal-0 {
  margin-right: 0rem !important;
  margin-left: 0rem !important; }

.margin-vertical-0 {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important; }

.padding-0 {
  padding: 0rem !important; }

.padding-top-0 {
  padding-top: 0rem !important; }

.padding-right-0 {
  padding-right: 0rem !important; }

.padding-bottom-0 {
  padding-bottom: 0rem !important; }

.padding-left-0 {
  padding-left: 0rem !important; }

.padding-horizontal-0 {
  padding-right: 0rem !important;
  padding-left: 0rem !important; }

.padding-vertical-0 {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important; }

.margin-1 {
  margin: 1.5rem !important; }

.margin-top-1 {
  margin-top: 1.5rem !important; }

.margin-right-1 {
  margin-right: 1.5rem !important; }

.margin-bottom-1 {
  margin-bottom: 1.5rem !important; }

.margin-left-1 {
  margin-left: 1.5rem !important; }

.margin-horizontal-1 {
  margin-right: 1.5rem !important;
  margin-left: 1.5rem !important; }

.margin-vertical-1 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important; }

.padding-1 {
  padding: 1.5rem !important; }

.padding-top-1 {
  padding-top: 1.5rem !important; }

.padding-right-1 {
  padding-right: 1.5rem !important; }

.padding-bottom-1 {
  padding-bottom: 1.5rem !important; }

.padding-left-1 {
  padding-left: 1.5rem !important; }

.padding-horizontal-1 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important; }

.padding-vertical-1 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important; }

.margin-2 {
  margin: 3rem !important; }

.margin-top-2 {
  margin-top: 3rem !important; }

.margin-right-2 {
  margin-right: 3rem !important; }

.margin-bottom-2 {
  margin-bottom: 3rem !important; }

.margin-left-2 {
  margin-left: 3rem !important; }

.margin-horizontal-2 {
  margin-right: 3rem !important;
  margin-left: 3rem !important; }

.margin-vertical-2 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important; }

.padding-2 {
  padding: 3rem !important; }

.padding-top-2 {
  padding-top: 3rem !important; }

.padding-right-2 {
  padding-right: 3rem !important; }

.padding-bottom-2 {
  padding-bottom: 3rem !important; }

.padding-left-2 {
  padding-left: 3rem !important; }

.padding-horizontal-2 {
  padding-right: 3rem !important;
  padding-left: 3rem !important; }

.padding-vertical-2 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important; }

.margin-3 {
  margin: 4.5rem !important; }

.margin-top-3 {
  margin-top: 4.5rem !important; }

.margin-right-3 {
  margin-right: 4.5rem !important; }

.margin-bottom-3 {
  margin-bottom: 4.5rem !important; }

.margin-left-3 {
  margin-left: 4.5rem !important; }

.margin-horizontal-3 {
  margin-right: 4.5rem !important;
  margin-left: 4.5rem !important; }

.margin-vertical-3 {
  margin-top: 4.5rem !important;
  margin-bottom: 4.5rem !important; }

.padding-3 {
  padding: 4.5rem !important; }

.padding-top-3 {
  padding-top: 4.5rem !important; }

.padding-right-3 {
  padding-right: 4.5rem !important; }

.padding-bottom-3 {
  padding-bottom: 4.5rem !important; }

.padding-left-3 {
  padding-left: 4.5rem !important; }

.padding-horizontal-3 {
  padding-right: 4.5rem !important;
  padding-left: 4.5rem !important; }

.padding-vertical-3 {
  padding-top: 4.5rem !important;
  padding-bottom: 4.5rem !important; }

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  -webkit-transition-duration: 750ms !important;
          transition-duration: 750ms !important; }

.fast {
  -webkit-transition-duration: 250ms !important;
          transition-duration: 250ms !important; }

.linear {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important; }

.ease {
  -webkit-transition-timing-function: ease !important;
          transition-timing-function: ease !important; }

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
          transition-timing-function: ease-in !important; }

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
          transition-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
          transition-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important; }

.long-delay {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important; }

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7; }

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-ccw-1turn;
          animation-name: spin-ccw-1turn; }

@-webkit-keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); } }

@keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms; }

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; }

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important; }

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important; }

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important; }

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important; }

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important; }

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important; }

.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0; }

.slick-list:focus {
  outline: 0; }

.slick-list.dragging {
  cursor: pointer;
  cursor: hand; }

.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block; }

.slick-track:before, .slick-track:after {
  display: table;
  content: ''; }

.slick-track:after {
  clear: both; }

.slick-loading .slick-track {
  visibility: hidden; }

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px; }

[dir='rtl'] .slick-slide {
  float: right; }

.slick-slide img {
  display: block; }

.slick-slide.slick-loading img {
  display: none; }

.slick-slide.dragging img {
  pointer-events: none; }

.slick-initialized .slick-slide {
  display: block; }

.slick-loading .slick-slide {
  visibility: hidden; }

.slick-vertical .slick-slide {
  display: block;
  height: auto; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-prev,
.slick-next {
  position: absolute;
  font-size: 0px;
  color: #fefefe;
  font-weight: 600;
  line-height: 0;
  padding: 0; }

.slick-prev {
  font-size: 0px;
  top: 50%;
  left: 20%; }

.slick-next {
  right: -6rem;
  top: 50%;
  right: 20%; }

.slick-dots {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center; }
  .slick-dots li {
    height: 10px;
    width: 10px;
    border-radius: 50%;
    display: inline-block;
    cursor: pointer;
    background-color: #fefefe;
    position: relative;
    opacity: 0.6;
    margin-right: 20px;
    list-style-type: none;
    font-size: 0; }
    .slick-dots li.slick-active {
      background-color: #fefefe;
      opacity: 1; }

.button, #header #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary a {
  color: #fefefe; }
  .button.primary, #header #main-menu ul li.primary a.primary, body.scrolled #header.dark-text #main-menu ul li.primary a.primary {
    background-color: #FA6400; }
  .button.secondary, #header #main-menu ul li.primary a.secondary, body.scrolled #header.dark-text #main-menu ul li.primary a.secondary {
    background-color: #000000; }
  .button.success, #header #main-menu ul li.primary a.success, body.scrolled #header.dark-text #main-menu ul li.primary a.success {
    background-color: #8ABD24; }
  .button.warning, #header #main-menu ul li.primary a.warning, body.scrolled #header.dark-text #main-menu ul li.primary a.warning {
    background-color: #ffae00; }
  .button.alert, #header #main-menu ul li.primary a.alert, body.scrolled #header.dark-text #main-menu ul li.primary a.alert {
    background-color: #cc4b37; }
  .button.light-gray, #header #main-menu ul li.primary a.light-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.light-gray {
    background-color: #FBFBFC; }
  .button.medium-gray, #header #main-menu ul li.primary a.medium-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.medium-gray {
    background-color: #c1c1d0; }
  .button.dark-gray, #header #main-menu ul li.primary a.dark-gray, body.scrolled #header.dark-text #main-menu ul li.primary a.dark-gray {
    background-color: #545471; }
  .button.black, #header #main-menu ul li.primary a.black, body.scrolled #header.dark-text #main-menu ul li.primary a.black {
    background-color: #000000; }
  .button.white, #header #main-menu ul li.primary a.white, body.scrolled #header.dark-text #main-menu ul li.primary a.white {
    background-color: #fefefe; }
  .button.hollow, #header #main-menu ul li.primary a.hollow, #header #main-menu ul li.secondary a, body.scrolled #header.dark-text #main-menu ul li.primary a.hollow, body.scrolled #header.dark-text #main-menu ul li.secondary a {
    background-color: transparent; }
    .button.hollow.hollow-fill:hover, #header #main-menu ul li.primary a.hollow.hollow-fill:hover, #header #main-menu ul li.secondary a.hollow-fill:hover, body.scrolled #header.dark-text #main-menu ul li.secondary a.hollow-fill:hover {
      background: #8ABD24;
      border-color: #8ABD24;
      color: #fefefe; }
      .button.hollow.hollow-fill:hover.primary, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.primary, #header #main-menu ul li.secondary a.hollow-fill:hover.primary {
        border-color: #FA6400;
        background: #FA6400; }
      .button.hollow.hollow-fill:hover.secondary, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.secondary, #header #main-menu ul li.secondary a.hollow-fill:hover.secondary, .pagebuilder section.contact .content form input.hollow-fill:hover[type="submit"] {
        border-color: #000000;
        background: #000000; }
      .button.hollow.hollow-fill:hover.success, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.success, #header #main-menu ul li.secondary a.hollow-fill:hover.success {
        border-color: #8ABD24;
        background: #8ABD24; }
      .button.hollow.hollow-fill:hover.warning, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.warning, #header #main-menu ul li.secondary a.hollow-fill:hover.warning {
        border-color: #ffae00;
        background: #ffae00; }
      .button.hollow.hollow-fill:hover.alert, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.alert, #header #main-menu ul li.secondary a.hollow-fill:hover.alert {
        border-color: #cc4b37;
        background: #cc4b37; }
      .button.hollow.hollow-fill:hover.light-gray, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.light-gray, #header #main-menu ul li.secondary a.hollow-fill:hover.light-gray {
        border-color: #FBFBFC;
        background: #FBFBFC; }
      .button.hollow.hollow-fill:hover.medium-gray, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.medium-gray, #header #main-menu ul li.secondary a.hollow-fill:hover.medium-gray {
        border-color: #c1c1d0;
        background: #c1c1d0; }
      .button.hollow.hollow-fill:hover.dark-gray, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.dark-gray, #header #main-menu ul li.secondary a.hollow-fill:hover.dark-gray {
        border-color: #545471;
        background: #545471; }
      .button.hollow.hollow-fill:hover.black, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.black, #header #main-menu ul li.secondary a.hollow-fill:hover.black {
        border-color: #000000;
        background: #000000; }
      .button.hollow.hollow-fill:hover.white, #header #main-menu ul li.primary a.hollow.hollow-fill:hover.white, #header #main-menu ul li.secondary a.hollow-fill:hover.white {
        border-color: #fefefe;
        background: #fefefe; }

@font-face {
  font-family: 'Brandon';
  src: url("fonts/brandon_reg-webfont.woff2") format("woff2"), url("fonts/brandon_reg-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Brandon';
  src: url("fonts/brandon_blk-webfont.woff2") format("woff2"), url("fonts/brandon_blk-webfont.woff") format("woff");
  font-weight: bold;
  font-style: normal; }

h1, .h1, h2, .h2, h3, .h3, h4, .h4, .archive_filter label, p, .p {
  line-height: 1.2; }

h1, .h1 {
  margin-bottom: 1.875rem;
  font-size: 1.875rem;
  line-height: 1; }
  @media print, screen and (min-width: 62.5em) {
    h1, .h1 {
      font-size: 3.125rem; } }
  @media print, screen and (min-width: 75em) {
    h1, .h1 {
      font-size: 5rem; } }

h2, .h2 {
  margin: 0 0 1rem;
  text-transform: uppercase;
  font-size: 2.375rem;
  font-weight: 800;
  line-height: 1.2; }
  @media print, screen and (min-width: 62.5em) {
    h2, .h2 {
      font-size: 7.5vw; } }
  @media print, screen and (min-width: 75em) {
    h2, .h2 {
      font-size: 3.125rem; } }

h3, .h3 {
  margin: 0.625rem 0 1.875rem;
  font-size: 2.375rem;
  font-weight: 800; }

h4, .h4, .archive_filter label {
  font-size: 1.125rem;
  font-weight: 800; }

p, .p {
  letter-spacing: 0.5px;
  font-size: 1rem; }
  @media print, screen and (min-width: 62.5em) {
    p, .p {
      font-size: 1.125rem; } }

.pretitle {
  text-transform: uppercase; }

.wysiwyg ul {
  letter-spacing: 0.5px;
  font-size: 1rem; }
  @media print, screen and (min-width: 62.5em) {
    .wysiwyg ul {
      font-size: 1.125rem; } }

.text-white a {
  color: inherit;
  text-decoration: underline; }
  .text-white a:hover {
    opacity: 0.6; }

mark {
  padding: 0 0.2em;
  background: #FA6400;
  color: #fefefe; }

body {
  min-height: 100vh;
  background: #000000; }

a[href^=tel] {
  color: inherit;
  text-decoration: none; }

.dark {
  background: #000000; }

.light {
  background: #FA6400; }

.row {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  clear: both; }
  .row .column.flexible, .row .flexible.columns {
    width: auto; }
  .row .column.small-flexible, .row .small-flexible.columns {
    width: auto; }
  @media print, screen and (min-width: 62.5em) {
    .row .column.medium-flexible, .row .medium-flexible.columns {
      width: auto; } }
  @media print, screen and (min-width: 75em) {
    .row .column.large-flexible, .row .large-flexible.columns {
      width: auto; } }
  @media screen and (min-width: 90em) {
    .row .column.xlarge-flexible, .row .xlarge-flexible.columns {
      width: auto; } }
  @media screen and (min-width: 105em) {
    .row .column.xxlarge-flexible, .row .xxlarge-flexible.columns {
      width: auto; } }
  .row .column table, .row .columns table {
    max-width: 100%;
    overflow: auto;
    min-width: 100%; }
  .row.expanded,
  .row .row {
    padding-left: 0;
    padding-right: 0; }
  .row.rtl .column, .row.rtl .columns {
    float: right; }

.bg-primary {
  background: #FA6400; }

.text-primary {
  color: #FA6400; }

.bg-secondary {
  background: #000000; }

.text-secondary {
  color: #000000; }

.bg-success {
  background: #8ABD24; }

.text-success {
  color: #8ABD24; }

.bg-warning {
  background: #ffae00; }

.text-warning {
  color: #ffae00; }

.bg-alert {
  background: #cc4b37; }

.text-alert {
  color: #cc4b37; }

.bg-light-gray {
  background: #FBFBFC; }

.text-light-gray {
  color: #FBFBFC; }

.bg-medium-gray {
  background: #c1c1d0; }

.text-medium-gray {
  color: #c1c1d0; }

.bg-dark-gray {
  background: #545471; }

.text-dark-gray {
  color: #545471; }

.bg-black {
  background: #000000; }

.text-black {
  color: #000000; }

.bg-white {
  background: #fefefe; }

.text-white {
  color: #fefefe; }

a.address .icon {
  height: 1em;
  width: 1em;
  display: inline-block;
  line-height: 1.2;
  vertical-align: text-top;
  margin-right: 1em; }

a.phone .icon {
  height: 1em;
  width: 1em;
  display: inline-block;
  line-height: 1.2;
  vertical-align: text-top;
  margin-right: 1em; }

a.email .icon {
  height: 1em;
  width: 1em;
  display: inline-block;
  line-height: 1.2;
  vertical-align: text-top;
  margin-right: 1em; }

.bg-dark-gray {
  background: #000000; }

.no-pad {
  padding: 0 !important; }

.pad {
  padding: 6rem 0; }

.gen-pad {
  padding: 1.5rem; }

@media print, screen and (max-width: 74.99875em) {
  .pad-top-mobile-only {
    padding-top: 1.25rem; }
  .mobile-pad {
    padding-bottom: 1.25rem; } }

.pad-allwayssmall {
  padding: 2.25rem 0; }

.mar-allwayssmall {
  margin: 2.25rem 0; }

.pad-left {
  padding-left: 2.25rem; }

.pad-top {
  padding-top: 2.25rem; }

.pad-right {
  padding-right: 2.25rem; }

.pad-bottom {
  padding-bottom: 2.25rem; }

.pad-left-allwayssmall {
  padding-left: 2.25rem; }

.pad-top-allwayssmall {
  padding-top: 2.25rem; }

.pad-right-allwayssmall {
  padding-right: 2.25rem; }

.pad-bottom-allwayssmall {
  padding-bottom: 2.25rem; }

.mar-allwayssmall {
  margin: 2.25rem; }

.mar-left-allwayssmall {
  margin-left: 2.25rem; }

.mar-top-allwayssmall {
  margin-top: 2.25rem; }

.mar-right-allwayssmall {
  margin-right: 2.25rem; }

.mar-bottom-allwayssmall {
  margin-bottom: 2.25rem; }

@media print, screen and (min-width: 62.5em) {
  .pad-allwayssmall {
    padding: 2.25rem 0; }
  .mar-allwayssmall {
    margin: 2.25rem 0; }
  .pad-left {
    padding-left: 2.25rem; }
  .pad-top {
    padding-top: 2.25rem; }
  .pad-right {
    padding-right: 2.25rem; }
  .pad-bottom {
    padding-bottom: 2.25rem; }
  .pad-left-allwayssmall {
    padding-left: 2.25rem; }
  .pad-top-allwayssmall {
    padding-top: 2.25rem; }
  .pad-right-allwayssmall {
    padding-right: 2.25rem; }
  .pad-bottom-allwayssmall {
    padding-bottom: 2.25rem; }
  .mar-allwayssmall {
    margin: 2.25rem; }
  .mar-left-allwayssmall {
    margin-left: 2.25rem; }
  .mar-top-allwayssmall {
    margin-top: 2.25rem; }
  .mar-right-allwayssmall {
    margin-right: 2.25rem; }
  .mar-bottom-allwayssmall {
    margin-bottom: 2.25rem; } }

@media print, screen and (min-width: 75em) {
  .pad-allwayssmall {
    padding: 2.25rem 0; }
  .mar-allwayssmall {
    margin: 2.25rem 0; }
  .pad-left {
    padding-left: 2.25rem; }
  .pad-top {
    padding-top: 2.25rem; }
  .pad-right {
    padding-right: 2.25rem; }
  .pad-bottom {
    padding-bottom: 2.25rem; }
  .pad-left-allwayssmall {
    padding-left: 2.25rem; }
  .pad-top-allwayssmall {
    padding-top: 2.25rem; }
  .pad-right-allwayssmall {
    padding-right: 2.25rem; }
  .pad-bottom-allwayssmall {
    padding-bottom: 2.25rem; }
  .mar-allwayssmall {
    margin: 2.25rem; }
  .mar-left-allwayssmall {
    margin-left: 2.25rem; }
  .mar-top-allwayssmall {
    margin-top: 2.25rem; }
  .mar-right-allwayssmall {
    margin-right: 2.25rem; }
  .mar-bottom-allwayssmall {
    margin-bottom: 2.25rem; } }

@media screen and (min-width: 90em) {
  .pad-allwayssmall {
    padding: 2.25rem 0; }
  .mar-allwayssmall {
    margin: 2.25rem 0; }
  .pad-left {
    padding-left: 2.25rem; }
  .pad-top {
    padding-top: 2.25rem; }
  .pad-right {
    padding-right: 2.25rem; }
  .pad-bottom {
    padding-bottom: 2.25rem; }
  .pad-left-allwayssmall {
    padding-left: 2.25rem; }
  .pad-top-allwayssmall {
    padding-top: 2.25rem; }
  .pad-right-allwayssmall {
    padding-right: 2.25rem; }
  .pad-bottom-allwayssmall {
    padding-bottom: 2.25rem; }
  .mar-allwayssmall {
    margin: 2.25rem; }
  .mar-left-allwayssmall {
    margin-left: 2.25rem; }
  .mar-top-allwayssmall {
    margin-top: 2.25rem; }
  .mar-right-allwayssmall {
    margin-right: 2.25rem; }
  .mar-bottom-allwayssmall {
    margin-bottom: 2.25rem; } }

.pad-small {
  padding: 2.25rem 0; }

.mar-small {
  margin: 2.25rem 0; }

.pad-left {
  padding-left: 2.25rem; }

.pad-top {
  padding-top: 2.25rem; }

.pad-right {
  padding-right: 2.25rem; }

.pad-bottom {
  padding-bottom: 2.25rem; }

.pad-left-small {
  padding-left: 2.25rem; }

.pad-top-small {
  padding-top: 2.25rem; }

.pad-right-small {
  padding-right: 2.25rem; }

.pad-bottom-small {
  padding-bottom: 2.25rem; }

.mar-small {
  margin: 2.25rem; }

.mar-left-small {
  margin-left: 2.25rem; }

.mar-top-small {
  margin-top: 2.25rem; }

.mar-right-small {
  margin-right: 2.25rem; }

.mar-bottom-small {
  margin-bottom: 2.25rem; }

@media print, screen and (min-width: 62.5em) {
  .pad-small {
    padding: 2.25rem 0; }
  .mar-small {
    margin: 2.25rem 0; }
  .pad-left {
    padding-left: 2.25rem; }
  .pad-top {
    padding-top: 2.25rem; }
  .pad-right {
    padding-right: 2.25rem; }
  .pad-bottom {
    padding-bottom: 2.25rem; }
  .pad-left-small {
    padding-left: 2.25rem; }
  .pad-top-small {
    padding-top: 2.25rem; }
  .pad-right-small {
    padding-right: 2.25rem; }
  .pad-bottom-small {
    padding-bottom: 2.25rem; }
  .mar-small {
    margin: 2.25rem; }
  .mar-left-small {
    margin-left: 2.25rem; }
  .mar-top-small {
    margin-top: 2.25rem; }
  .mar-right-small {
    margin-right: 2.25rem; }
  .mar-bottom-small {
    margin-bottom: 2.25rem; } }

@media print, screen and (min-width: 75em) {
  .pad-small {
    padding: 3rem 0; }
  .mar-small {
    margin: 3rem 0; }
  .pad-left {
    padding-left: 3rem; }
  .pad-top {
    padding-top: 3rem; }
  .pad-right {
    padding-right: 3rem; }
  .pad-bottom {
    padding-bottom: 3rem; }
  .pad-left-small {
    padding-left: 3rem; }
  .pad-top-small {
    padding-top: 3rem; }
  .pad-right-small {
    padding-right: 3rem; }
  .pad-bottom-small {
    padding-bottom: 3rem; }
  .mar-small {
    margin: 3rem; }
  .mar-left-small {
    margin-left: 3rem; }
  .mar-top-small {
    margin-top: 3rem; }
  .mar-right-small {
    margin-right: 3rem; }
  .mar-bottom-small {
    margin-bottom: 3rem; } }

@media screen and (min-width: 90em) {
  .pad-small {
    padding: 4.5rem 0; }
  .mar-small {
    margin: 4.5rem 0; }
  .pad-left {
    padding-left: 4.5rem; }
  .pad-top {
    padding-top: 4.5rem; }
  .pad-right {
    padding-right: 4.5rem; }
  .pad-bottom {
    padding-bottom: 4.5rem; }
  .pad-left-small {
    padding-left: 4.5rem; }
  .pad-top-small {
    padding-top: 4.5rem; }
  .pad-right-small {
    padding-right: 4.5rem; }
  .pad-bottom-small {
    padding-bottom: 4.5rem; }
  .mar-small {
    margin: 4.5rem; }
  .mar-left-small {
    margin-left: 4.5rem; }
  .mar-top-small {
    margin-top: 4.5rem; }
  .mar-right-small {
    margin-right: 4.5rem; }
  .mar-bottom-small {
    margin-bottom: 4.5rem; } }

.pad-large {
  padding: 3rem 0; }

.mar-large {
  margin: 3rem 0; }

.pad-left {
  padding-left: 3rem; }

.pad-top {
  padding-top: 3rem; }

.pad-right {
  padding-right: 3rem; }

.pad-bottom {
  padding-bottom: 3rem; }

.pad-left-large {
  padding-left: 3rem; }

.pad-top-large {
  padding-top: 3rem; }

.pad-right-large {
  padding-right: 3rem; }

.pad-bottom-large {
  padding-bottom: 3rem; }

.mar-large {
  margin: 3rem; }

.mar-left-large {
  margin-left: 3rem; }

.mar-top-large {
  margin-top: 3rem; }

.mar-right-large {
  margin-right: 3rem; }

.mar-bottom-large {
  margin-bottom: 3rem; }

@media print, screen and (min-width: 62.5em) {
  .pad-large {
    padding: 4.5rem 0; }
  .mar-large {
    margin: 4.5rem 0; }
  .pad-left {
    padding-left: 4.5rem; }
  .pad-top {
    padding-top: 4.5rem; }
  .pad-right {
    padding-right: 4.5rem; }
  .pad-bottom {
    padding-bottom: 4.5rem; }
  .pad-left-large {
    padding-left: 4.5rem; }
  .pad-top-large {
    padding-top: 4.5rem; }
  .pad-right-large {
    padding-right: 4.5rem; }
  .pad-bottom-large {
    padding-bottom: 4.5rem; }
  .mar-large {
    margin: 4.5rem; }
  .mar-left-large {
    margin-left: 4.5rem; }
  .mar-top-large {
    margin-top: 4.5rem; }
  .mar-right-large {
    margin-right: 4.5rem; }
  .mar-bottom-large {
    margin-bottom: 4.5rem; } }

@media print, screen and (min-width: 75em) {
  .pad-large {
    padding: 6rem 0; }
  .mar-large {
    margin: 6rem 0; }
  .pad-left {
    padding-left: 6rem; }
  .pad-top {
    padding-top: 6rem; }
  .pad-right {
    padding-right: 6rem; }
  .pad-bottom {
    padding-bottom: 6rem; }
  .pad-left-large {
    padding-left: 6rem; }
  .pad-top-large {
    padding-top: 6rem; }
  .pad-right-large {
    padding-right: 6rem; }
  .pad-bottom-large {
    padding-bottom: 6rem; }
  .mar-large {
    margin: 6rem; }
  .mar-left-large {
    margin-left: 6rem; }
  .mar-top-large {
    margin-top: 6rem; }
  .mar-right-large {
    margin-right: 6rem; }
  .mar-bottom-large {
    margin-bottom: 6rem; } }

@media screen and (min-width: 90em) {
  .pad-large {
    padding: 7.5rem 0; }
  .mar-large {
    margin: 7.5rem 0; }
  .pad-left {
    padding-left: 7.5rem; }
  .pad-top {
    padding-top: 7.5rem; }
  .pad-right {
    padding-right: 7.5rem; }
  .pad-bottom {
    padding-bottom: 7.5rem; }
  .pad-left-large {
    padding-left: 7.5rem; }
  .pad-top-large {
    padding-top: 7.5rem; }
  .pad-right-large {
    padding-right: 7.5rem; }
  .pad-bottom-large {
    padding-bottom: 7.5rem; }
  .mar-large {
    margin: 7.5rem; }
  .mar-left-large {
    margin-left: 7.5rem; }
  .mar-top-large {
    margin-top: 7.5rem; }
  .mar-right-large {
    margin-right: 7.5rem; }
  .mar-bottom-large {
    margin-bottom: 7.5rem; } }

.pad-xlarge {
  padding: 4.5rem 0; }

.mar-xlarge {
  margin: 4.5rem 0; }

.pad-left {
  padding-left: 4.5rem; }

.pad-top {
  padding-top: 4.5rem; }

.pad-right {
  padding-right: 4.5rem; }

.pad-bottom {
  padding-bottom: 4.5rem; }

.pad-left-xlarge {
  padding-left: 4.5rem; }

.pad-top-xlarge {
  padding-top: 4.5rem; }

.pad-right-xlarge {
  padding-right: 4.5rem; }

.pad-bottom-xlarge {
  padding-bottom: 4.5rem; }

.mar-xlarge {
  margin: 4.5rem; }

.mar-left-xlarge {
  margin-left: 4.5rem; }

.mar-top-xlarge {
  margin-top: 4.5rem; }

.mar-right-xlarge {
  margin-right: 4.5rem; }

.mar-bottom-xlarge {
  margin-bottom: 4.5rem; }

@media print, screen and (min-width: 62.5em) {
  .pad-xlarge {
    padding: 6rem 0; }
  .mar-xlarge {
    margin: 6rem 0; }
  .pad-left {
    padding-left: 6rem; }
  .pad-top {
    padding-top: 6rem; }
  .pad-right {
    padding-right: 6rem; }
  .pad-bottom {
    padding-bottom: 6rem; }
  .pad-left-xlarge {
    padding-left: 6rem; }
  .pad-top-xlarge {
    padding-top: 6rem; }
  .pad-right-xlarge {
    padding-right: 6rem; }
  .pad-bottom-xlarge {
    padding-bottom: 6rem; }
  .mar-xlarge {
    margin: 6rem; }
  .mar-left-xlarge {
    margin-left: 6rem; }
  .mar-top-xlarge {
    margin-top: 6rem; }
  .mar-right-xlarge {
    margin-right: 6rem; }
  .mar-bottom-xlarge {
    margin-bottom: 6rem; } }

@media print, screen and (min-width: 75em) {
  .pad-xlarge {
    padding: 7.5rem 0; }
  .mar-xlarge {
    margin: 7.5rem 0; }
  .pad-left {
    padding-left: 7.5rem; }
  .pad-top {
    padding-top: 7.5rem; }
  .pad-right {
    padding-right: 7.5rem; }
  .pad-bottom {
    padding-bottom: 7.5rem; }
  .pad-left-xlarge {
    padding-left: 7.5rem; }
  .pad-top-xlarge {
    padding-top: 7.5rem; }
  .pad-right-xlarge {
    padding-right: 7.5rem; }
  .pad-bottom-xlarge {
    padding-bottom: 7.5rem; }
  .mar-xlarge {
    margin: 7.5rem; }
  .mar-left-xlarge {
    margin-left: 7.5rem; }
  .mar-top-xlarge {
    margin-top: 7.5rem; }
  .mar-right-xlarge {
    margin-right: 7.5rem; }
  .mar-bottom-xlarge {
    margin-bottom: 7.5rem; } }

@media screen and (min-width: 90em) {
  .pad-xlarge {
    padding: 9rem 0; }
  .mar-xlarge {
    margin: 9rem 0; }
  .pad-left {
    padding-left: 9rem; }
  .pad-top {
    padding-top: 9rem; }
  .pad-right {
    padding-right: 9rem; }
  .pad-bottom {
    padding-bottom: 9rem; }
  .pad-left-xlarge {
    padding-left: 9rem; }
  .pad-top-xlarge {
    padding-top: 9rem; }
  .pad-right-xlarge {
    padding-right: 9rem; }
  .pad-bottom-xlarge {
    padding-bottom: 9rem; }
  .mar-xlarge {
    margin: 9rem; }
  .mar-left-xlarge {
    margin-left: 9rem; }
  .mar-top-xlarge {
    margin-top: 9rem; }
  .mar-right-xlarge {
    margin-right: 9rem; }
  .mar-bottom-xlarge {
    margin-bottom: 9rem; } }

.animate-fade-in {
  -webkit-animation-name: custom-1;
          animation-name: custom-1;
  -webkit-animation-duration: 1s;
          animation-duration: 1s; }

@-webkit-keyframes custom-1 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes custom-1 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

.animate-zoom {
  -webkit-animation-name: scale-1-to-0;
          animation-name: scale-1-to-0;
  -webkit-animation-duration: 1s;
          animation-duration: 1s; }

@-webkit-keyframes scale-1-to-0 {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes scale-1-to-0 {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

#bg-grid {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: all 0.15s ease-in;
  transition: all 0.15s ease-in; }
  #bg-grid.expanded {
    left: 0;
    width: 100%;
    margin-left: 0; }
  #bg-grid div {
    position: relative;
    height: 100vh;
    overflow: hidden;
    outline: 0.25px solid rgba(0, 0, 0, 0.1); }
    #bg-grid div:before, #bg-grid div:after {
      content: " ";
      position: absolute;
      top: 0;
      bottom: 0; }
    #bg-grid div:before {
      right: 0.9375rem;
      left: 0.9375rem;
      background: rgba(255, 0, 0, 0.1); }
    #bg-grid div:nth-child(odd):before {
      right: 0.9375rem; }
    #bg-grid div:nth-child(odd):after {
      left: 0.9375rem; }
    #bg-grid div:nth-child(even):after {
      right: 0.9375rem; }
    #bg-grid div:nth-child(even):before {
      left: 0.9375rem; }
  #bg-grid-toggle {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 9999; }
  #bg-grid.active {
    opacity: 0.5; }
    #bg-grid.active + #bg-grid-toggle {
      color: green; }

.img-wrap {
  overflow: hidden; }
  .img-wrap.compat-object-fit {
    background-size: cover;
    background-position: center center; }
    .img-wrap.compat-object-fit .img-obj {
      opacity: 0; }
  .img-wrap .img-obj {
    position: absolute;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; }

a .img-wrap .img-obj, a.img-wrap .img-obj {
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; }
  a .img-wrap .img-obj:hover, a.img-wrap .img-obj:hover {
    -webkit-transform: scale(1.01);
        -ms-transform: scale(1.01);
            transform: scale(1.01); }

.grid-10 .small-1 {
  width: 10%; }

.grid-10 .small-2 {
  width: 20%; }

.grid-10 .small-3 {
  width: 30%; }

.grid-10 .small-4 {
  width: 40%; }

.grid-10 .small-5 {
  width: 50%; }

.grid-10 .small-6 {
  width: 60%; }

.grid-10 .small-7 {
  width: 70%; }

.grid-10 .small-8 {
  width: 80%; }

.grid-10 .small-9 {
  width: 90%; }

.grid-10 .small-10 {
  width: 100%; }

@media print, screen and (min-width: 62.5em) {
  .grid-10 .medium-1 {
    width: 10%; }
  .grid-10 .medium-2 {
    width: 20%; }
  .grid-10 .medium-3 {
    width: 30%; }
  .grid-10 .medium-4 {
    width: 40%; }
  .grid-10 .medium-5 {
    width: 50%; }
  .grid-10 .medium-6 {
    width: 60%; }
  .grid-10 .medium-7 {
    width: 70%; }
  .grid-10 .medium-8 {
    width: 80%; }
  .grid-10 .medium-9 {
    width: 90%; }
  .grid-10 .medium-10 {
    width: 100%; } }

@media print, screen and (min-width: 75em) {
  .grid-10 .large-1 {
    width: 10%; }
  .grid-10 .large-2 {
    width: 20%; }
  .grid-10 .large-3 {
    width: 30%; }
  .grid-10 .large-4 {
    width: 40%; }
  .grid-10 .large-5 {
    width: 50%; }
  .grid-10 .large-6 {
    width: 60%; }
  .grid-10 .large-7 {
    width: 70%; }
  .grid-10 .large-8 {
    width: 80%; }
  .grid-10 .large-9 {
    width: 90%; }
  .grid-10 .large-10 {
    width: 100%; } }

#header {
  position: fixed;
  width: 100%;
  z-index: 3;
  text-align: center;
  background: #000000; }
  #header #sitewide-notice {
    padding: 0.75rem 1.5rem;
    margin: 0;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
    color: #fefefe;
    text-align: center;
    -webkit-transition: padding 0.15s ease-in-out;
    transition: padding 0.15s ease-in-out; }
    #header #sitewide-notice strong {
      margin-right: 1em; }
    #header #sitewide-notice a {
      margin-left: 1em;
      color: inherit;
      text-decoration: underline; }
  #header > .row {
    -webkit-transition: padding 0.15s ease-in-out;
    transition: padding 0.15s ease-in-out; }
    @media print, screen and (max-width: 74.99875em) {
      #header > .row {
        padding: 0.625rem 0; } }
    @media print, screen and (max-width: 62.49875em) {
      #header > .row .column, #header > .row .columns {
        padding-left: 5rem; } }
  #header .logo {
    display: block;
    position: absolute;
    left: 50%;
    text-align: center;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }
    #header .logo svg * {
      fill: #fefefe;
      -webkit-transition: all 0.15s ease-in;
      transition: all 0.15s ease-in; }
    @media print, screen and (min-width: 75em) {
      #header .logo {
        padding: 1.5625rem 0.75rem 1.6875rem; }
        #header .logo:hover svg *, #header .logo:focus svg *, #header .logo:active svg * {
          fill: #FA6400; }
        #header .logo:hover img, #header .logo:focus img, #header .logo:active img {
          opacity: 0.6; } }
    #header .logo svg, #header .logo img {
      vertical-align: middle;
      height: 1.1875rem;
      width: auto;
      -webkit-transition: all 0.3s ease-in-out;
      transition: all 0.3s ease-in-out; }
      @media print, screen and (min-width: 75em) {
        #header .logo svg, #header .logo img {
          height: 1.75rem; } }
  #header #menu-toggle {
    width: 3.8125rem;
    padding: 0.5rem 1.25rem;
    float: right;
    cursor: pointer;
    -webkit-transition: -webkit-transform 0.15s ease-in-out;
    transition: -webkit-transform 0.15s ease-in-out;
    transition: transform 0.15s ease-in-out;
    transition: transform 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; }
    @media print, screen and (min-width: 75em) {
      #header #menu-toggle {
        padding-top: 1.625rem;
        padding-bottom: 1.625rem; } }
    #header #menu-toggle:hover {
      -webkit-transform: scale(1.1);
          -ms-transform: scale(1.1);
              transform: scale(1.1); }
    #header #menu-toggle div {
      position: relative;
      width: 100%;
      height: 2px;
      background: #fefefe; }
      #header #menu-toggle div:first-child {
        margin-bottom: 0.3125rem; }
      #header #menu-toggle div:nth-child(3) {
        margin-top: 0.3125rem; }
    @media print, screen and (min-width: 75em) {
      #header #menu-toggle {
        display: none; } }
  #header #main-menu {
    font-weight: 800;
    text-transform: none;
    font-family: Brandon, Arial, sans-serif;
    font-weight: 400;
    font-size: 18px; }
    @media print, screen and (max-width: 74.99875em) {
      #header #main-menu {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 0 0;
        background: #000000;
        border-top: solid 8.6875rem #000000;
        overflow-y: auto;
        z-index: -1;
        -webkit-transform: translateX(100%);
            -ms-transform: translateX(100%);
                transform: translateX(100%);
        -webkit-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out; } }
    @media print, screen and (min-width: 75em) {
      #header #main-menu {
        margin: 0 -0.9375rem;
        display: block !important; } }
    #header #main-menu ul {
      width: 100%; }
      #header #main-menu ul li {
        position: relative; }
        @media print, screen and (max-width: 74.99875em) {
          #header #main-menu ul li {
            width: 90%;
            margin: 0 5%;
            border-bottom: 1px solid #655b5b; } }
        #header #main-menu ul li a {
          -webkit-transition: all 0.15s ease-in;
          transition: all 0.15s ease-in; }
          @media print, screen and (max-width: 74.99875em) {
            #header #main-menu ul li a {
              padding: 0.9375rem 1.875rem;
              color: #fefefe;
              font-size: 1.6875rem;
              opacity: 1;
              text-align: left; } }
          @media print, screen and (min-width: 75em) {
            #header #main-menu ul li a {
              padding: 1.75rem 1.125rem;
              font-size: 1.125rem;
              line-height: 1.33333;
              color: inherit;
              text-align: center; } }
          #header #main-menu ul li a:hover, #header #main-menu ul li a:focus, #header #main-menu ul li a:active {
            text-shadow: 0 0 1em rgba(254, 254, 254, 0.25);
            opacity: 0.6;
            text-decoration: underline; }
          #header #main-menu ul li a.active {
            color: #FA6400; }
            @media print, screen and (max-width: 74.99875em) {
              #header #main-menu ul li a.active {
                opacity: 1; } }
        #header #main-menu ul li.account a {
          padding-right: 0; }
          #header #main-menu ul li.account a:hover {
            color: #FA6400;
            opacity: 1; }
            #header #main-menu ul li.account a:hover span {
              text-decoration: none; }
        #header #main-menu ul li.wpmenucartli .empty-wpmenucart-visible {
          display: none; }
        #header #main-menu ul li.wpmenucartli span.cartcontents {
          background: #FA6400;
          border-radius: 99rem;
          text-align: center;
          width: 1.667em;
          height: 1.667em;
          font-size: 0.8em;
          padding: 0.15em;
          overflow: hidden;
          font-weight: bold;
          vertical-align: bottom;
          -webkit-transition: all 0.15s ease-in;
          transition: all 0.15s ease-in; }
        #header #main-menu ul li.wpmenucartli a:hover span.cartcontents, #header #main-menu ul li.wpmenucartli a:active span.cartcontents {
          color: #fefefe; }
        #header #main-menu ul li.menu-item-has-children > a:after {
          content: '';
          display: inline-block;
          width: 0.5em;
          height: 0.5em;
          margin-left: 0.5em;
          border: solid;
          border-width: 2px 2px 0 0;
          pointer-events: none;
          -webkit-transition: all 0.15s ease-in-out;
          transition: all 0.15s ease-in-out; }
          @media print, screen and (max-width: 74.99875em) {
            #header #main-menu ul li.menu-item-has-children > a:after {
              position: absolute;
              right: 5.625rem;
              opacity: 0.6;
              -webkit-transform: scale(0.7) translateY(0.3em) rotate(45deg);
                  -ms-transform: scale(0.7) translateY(0.3em) rotate(45deg);
                      transform: scale(0.7) translateY(0.3em) rotate(45deg); } }
          @media print, screen and (min-width: 75em) {
            #header #main-menu ul li.menu-item-has-children > a:after {
              -webkit-transform: translateY(-0.3em) rotate(135deg);
                  -ms-transform: translateY(-0.3em) rotate(135deg);
                      transform: translateY(-0.3em) rotate(135deg); } }
        @media print, screen and (max-width: 74.99875em) {
          #header #main-menu ul li.menu-item-has-children:hover > a:after, #header #main-menu ul li.menu-item-has-children:focus > a:after, #header #main-menu ul li.menu-item-has-children:active > a:after {
            color: inherit; } }
        @media print, screen and (min-width: 75em) {
          #header #main-menu ul li.menu-item-has-children:hover > a:after, #header #main-menu ul li.menu-item-has-children:focus > a:after, #header #main-menu ul li.menu-item-has-children:active > a:after {
            -webkit-transform: translateY(-0.2em) scaleY(-1) rotate(135deg);
                -ms-transform: translateY(-0.2em) scaleY(-1) rotate(135deg);
                    transform: translateY(-0.2em) scaleY(-1) rotate(135deg); } }
        @media print, screen and (max-width: 74.99875em) {
          #header #main-menu ul li.menu-item-has-children.active > a {
            opacity: 1;
            background: none;
            color: #FA6400; } }
        @media print, screen and (max-width: 74.99875em) {
          #header #main-menu ul li.menu-item-has-children.active > a:after {
            opacity: 1;
            -webkit-transform: scale(0.7) translateY(0.3em) rotate(135deg);
                -ms-transform: scale(0.7) translateY(0.3em) rotate(135deg);
                    transform: scale(0.7) translateY(0.3em) rotate(135deg); } }
        #header #main-menu ul li ul {
          border: 0;
          border-radius: 0.3125rem;
          z-index: +9999;
          text-align: right;
          -webkit-transition: all 1s ease-in-out;
          transition: all 1s ease-in-out; }
          @media print, screen and (max-width: 74.99875em) {
            #header #main-menu ul li ul {
              max-height: 0;
              overflow: hidden; } }
          @media print, screen and (min-width: 75em) {
            #header #main-menu ul li ul {
              display: none;
              position: absolute;
              left: 50%;
              width: 11.25rem;
              margin: -0.625rem 0 0 -5.625rem;
              background: #000000; } }
          #header #main-menu ul li ul:before {
            content: '';
            position: absolute;
            left: 50%;
            bottom: 100%;
            margin-left: -0.5rem;
            border-style: solid;
            border-width: 0 0.5rem 0.5rem 0.5rem;
            border-color: transparent transparent #000000 transparent; }
          @media print, screen and (max-width: 62.49875em) {
            #header #main-menu ul li ul {
              margin-right: 2rem; } }
          @media print, screen and (max-width: 74.99875em) {
            #header #main-menu ul li ul li a {
              padding-left: 5rem;
              color: #000000;
              font-size: 1.375rem;
              opacity: 1;
              text-transform: none;
              line-height: 1.2; } }
          @media print, screen and (min-width: 75em) {
            #header #main-menu ul li ul li a {
              padding: 0.625rem 1.25rem; } }
          #header #main-menu ul li ul li:first-child a {
            padding-top: 1.875rem;
            border-radius: 0.3125rem 0.3125rem 0 0; }
          #header #main-menu ul li ul li:last-child a {
            padding-bottom: 1.875rem;
            border-radius: 0 0 0.3125rem 0.3125rem; }
          #header #main-menu ul li ul li:only-child a {
            border-radius: 0.3125rem; }
          @media print, screen and (min-width: 75em) {
            #header #main-menu ul li ul li:hover a, #header #main-menu ul li ul li:focus a, #header #main-menu ul li ul li:active a {
              opacity: 0.67; } }
          @media print, screen and (max-width: 74.99875em) {
            #header #main-menu ul li ul li.active a {
              color: #FA6400; } }
        #header #main-menu ul li.primary a, #header #main-menu ul li.secondary a {
          margin: 0.125rem 1.5rem 0 !important; }
        @media print, screen and (min-width: 75em) {
          #header #main-menu ul li:last-of-type {
            margin-right: 0; }
            #header #main-menu ul li:last-of-type a {
              margin-right: 0 !important; } }
        @media print, screen and (min-width: 75em) {
          #header #main-menu ul li:hover ul, #header #main-menu ul li:focus ul, #header #main-menu ul li:active ul {
            display: block; } }
        @media print, screen and (max-width: 74.99875em) {
          #header #main-menu ul li.active ul {
            -webkit-transition-duration: 0.3s;
                    transition-duration: 0.3s;
            max-height: 100vh; } }
    @media print, screen and (min-width: 75em) {
      #header #main-menu .left-menu {
        float: left; } }
    @media print, screen and (min-width: 75em) {
      #header #main-menu .right-menu {
        float: right; } }
  @media print, screen and (max-width: 62.49875em) {
    #header {
      padding: 0.75rem; }
      #header .topbar-title {
        position: relative;
        width: 100%; }
        #header .topbar-title svg {
          width: 5rem; }
        #header .topbar-title span {
          position: absolute;
          right: 0;
          padding: 0.25rem 0.45rem;
          top: 50%;
          -webkit-transform: translateY(-50%);
              -ms-transform: translateY(-50%);
                  transform: translateY(-50%); }
          #header .topbar-title span .menu-icon:after {
            background: #fefefe;
            -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
                    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; } }
  #header.light-text .logo {
    -webkit-transition: all 0.1s ease-in-out;
    transition: all 0.1s ease-in-out; }
    #header.light-text .logo svg svg * {
      fill: #000000; }
    #header.light-text .logo svg:hover svg *, #header.light-text .logo svg:focus svg *, #header.light-text .logo svg:active svg * {
      fill: #FA6400; }
  @media print, screen and (min-width: 75em) {
    #header.light-text #main-menu ul li a {
      color: #fefefe; } }
  @media print, screen and (max-width: 74.99875em) {
    #header.light-text #main-menu ul li.primary a, #header.light-text #main-menu ul li.secondary a {
      margin: 1.5rem 3.75rem 0 !important;
      opacity: 1; } }
  @media print, screen and (min-width: 75em) {
    #header.light-text #main-menu ul li.primary a {
      background-color: #fefefe;
      border-color: #fefefe;
      color: #000000; } }
  @media print, screen and (min-width: 75em) {
    #header.light-text #main-menu ul li.primary a:hover {
      background-color: #FA6400;
      color: #fefefe; } }
  @media print, screen and (min-width: 75em) {
    #header.light-text #main-menu ul li.secondary a {
      border-color: #fefefe; } }
  @media print, screen and (min-width: 75em) {
    #header.light-text #main-menu ul li.secondary a:hover {
      background-color: #fefefe;
      color: #000000; } }
  @media print, screen and (min-width: 75em) {
    #header.dark-text #main-menu ul li a {
      color: #000000; } }
  @media print, screen and (min-width: 75em) {
    #header.dark-text #main-menu ul li ul li a {
      color: #fefefe; } }

@media print, screen and (max-width: 74.99875em) {
  body.show-menu #header #main-menu {
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0); } }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-webkit-keyframes slideDown {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%); } }

@keyframes slideDown {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%); } }

@media print, screen and (max-width: 62.49875em) {
  .topbar-responsive-links {
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
    width: 100%;
    -webkit-animation: slideDown 1s ease-in;
            animation: slideDown 1s ease-in; } }

body.scrolled #header {
  background: #000000;
  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); }
  body.scrolled #header #main-menu {
    border-top: solid 5.5625rem #000000; }
    @media print, screen and (min-width: 75em) {
      body.scrolled #header #main-menu {
        border-top: 0; } }
  body.scrolled #header.dark-text .logo svg * {
    fill: #000000; }
  body.scrolled #header.dark-text .logo:hover svg *, body.scrolled #header.dark-text .logo:focus svg *, body.scrolled #header.dark-text .logo:active svg * {
    fill: #FA6400; }
  @media print, screen and (min-width: 75em) {
    body.scrolled #header.dark-text #main-menu ul li a {
      color: #000000; } }

body.logged-in #wpadminbar {
  position: fixed; }

@media screen and (max-width: 782px) {
  body.logged-in #main-menu {
    margin-top: 46px; } }

@media screen and (min-width: 783px) and (max-width: 1063px) {
  body.logged-in #main-menu {
    margin-top: 32px; } }

body.logged-in #main-menu ul li.account a {
  padding-right: 1.125rem; }

body.menu-open #header .overlay {
  opacity: 1;
  pointer-events: initial; }

body.menu-open #header #main-menu {
  -webkit-transform: none !important;
      -ms-transform: none !important;
          transform: none !important; }

body.menu-open #header .menu-toggle div {
  background: #fefefe; }
  body.menu-open #header .menu-toggle div:first-child {
    -webkit-transform: translateY(6px) rotate(45deg);
        -ms-transform: translateY(6px) rotate(45deg);
            transform: translateY(6px) rotate(45deg); }
  body.menu-open #header .menu-toggle div:nth-child(2) {
    opacity: 0; }
  body.menu-open #header .menu-toggle div:nth-child(3) {
    -webkit-transform: translateY(-6px) rotate(-45deg);
        -ms-transform: translateY(-6px) rotate(-45deg);
            transform: translateY(-6px) rotate(-45deg); }

.current-menu-item a,
.current-page-ancestor a,
.current-post-ancestor a {
  color: #FA6400 !important; }

#main {
  z-index: 2;
  padding-top: 5.61938rem;
  background: #fefefe;
  color: #000000; }

#footer {
  background: #000000;
  color: #fefefe;
  padding-top: 3.5625rem;
  padding-bottom: 2.5rem;
  text-align: center; }
  @media print, screen and (min-width: 62.5em) {
    #footer {
      padding-bottom: 0; } }
  #footer .row {
    padding-bottom: 1.25rem; }
    #footer .row a {
      color: inherit;
      text-decoration: underline;
      -webkit-transition: all 0.15s ease-in;
      transition: all 0.15s ease-in; }
      #footer .row a img {
        -webkit-transition: all 0.15s ease-in;
        transition: all 0.15s ease-in; }
      #footer .row a:hover {
        color: #FA6400; }
        #footer .row a:hover img {
          opacity: 0.9;
          -webkit-transform: scale(1.05);
              -ms-transform: scale(1.05);
                  transform: scale(1.05); }
    #footer .row ul li a {
      text-decoration: none; }
    #footer .row .logo img {
      width: 200px;
      max-width: 100%; }
    #footer .row .menu {
      margin: 0 -0.9375rem; }
    #footer .row .social a svg {
      width: auto;
      height: 1.5rem;
      fill: #fefefe;
      -webkit-transition: all 0.15s ease-in;
      transition: all 0.15s ease-in; }
    #footer .row .social a:hover svg {
      fill: #FA6400; }

.grecaptcha-badge {
  visibility: hidden; }

.card {
  position: relative; }
  @media print, screen and (min-width: 62.5em) {
    .card.double {
      min-height: 20rem; } }
  @media print, screen and (min-width: 62.5em) {
    .card.double .inner-content {
      max-width: 35vw;
      width: 90%;
      position: absolute;
      bottom: 1rem; } }
  .card-section .card-section__image {
    margin: -1.5rem -1.5rem 1.5rem -1.5rem; }
    .card-section .card-section__image img {
      max-height: 20vh;
      width: 100%;
      -o-object-fit: cover;
         object-fit: cover; }
    .card-section .card-section__image.cover img {
      max-height: none;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
         object-fit: cover;
      z-index: 1;
      opacity: 0.4; }
  .card-section .card-section__title {
    position: relative;
    z-index: 2; }
    .card-section .card-section__title h3, .card-section .card-section__title h4 {
      margin-bottom: 0.25rem;
      line-height: 1; }
  .card-section .card-section__date {
    position: relative;
    margin-bottom: 0.75rem;
    display: block;
    font-size: 0.8rem;
    z-index: 2; }
  .card-section .card-section__excerpt {
    position: relative;
    margin-bottom: 1.5rem;
    z-index: 2; }
  .card-section .card-section__author {
    position: relative;
    margin-bottom: 1.5rem;
    z-index: 2; }
  .card-section .card-section__button {
    position: relative;
    z-index: 2; }

body .pagination {
  overflow: visible;
  background: transparent; }
  body .pagination li {
    display: inline-block; }

.pagination-pointed .pagination-pointed-button-a, .pagination-pointed .pagination-pointed-button .page-numbers.dots, .pagination-pointed .prev .page-numbers.dots, .pagination-pointed span.current,
.pagination-pointed .pagination-pointed-button a,
.pagination-pointed .prev a {
  display: none;
  position: relative;
  padding: 6px 12px;
  margin: 0 0.1rem;
  margin-bottom: 0;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
  background-color: #000000;
  color: #fefefe;
  outline: 0;
  text-decoration: none;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear; }
  @media print, screen and (min-width: 62.5em) {
    .pagination-pointed .pagination-pointed-button-a, .pagination-pointed .pagination-pointed-button .page-numbers.dots, .pagination-pointed .prev .page-numbers.dots, .pagination-pointed span.current,
    .pagination-pointed .pagination-pointed-button a,
    .pagination-pointed .prev a {
      display: inline-block; } }
  .pagination-pointed .pagination-pointed-button-a:hover, .pagination-pointed .pagination-pointed-button .page-numbers.dots:hover, .pagination-pointed .prev .page-numbers.dots:hover, .pagination-pointed span.current:hover,
  .pagination-pointed .pagination-pointed-button a:hover,
  .pagination-pointed .prev a:hover {
    background-color: #1a1a1a; }

.pagination-pointed .pagination-pointed-button .page-numbers.dots, .pagination-pointed .prev .page-numbers.dots {
  background-color: gray;
  display: none; }
  @media print, screen and (min-width: 62.5em) {
    .pagination-pointed .pagination-pointed-button .page-numbers.dots, .pagination-pointed .prev .page-numbers.dots {
      display: inline-block; } }

.pagination-pointed span.current {
  display: inline-block;
  background: #FA6400 !important; }
  .pagination-pointed span.current:hover {
    background-color: #c75000; }

.pagination-pointed .next {
  display: inline-block !important;
  border-radius: 4px 0 0 4px;
  margin-right: 18px; }
  .pagination-pointed .next:hover::after {
    border-left: 17px solid #1a1a1a; }
  .pagination-pointed .next::after {
    content: "";
    position: absolute;
    top: 0;
    right: -17px;
    width: 0;
    height: 0;
    border-top: 17px solid transparent;
    border-bottom: 17px solid transparent;
    border-left: 17px solid #000000;
    -webkit-transition: all 0.2s linear;
    transition: all 0.2s linear; }

.pagination-pointed .prev {
  display: inline-block !important;
  border-radius: 0 4px 4px 0;
  margin-left: 18px; }
  .pagination-pointed .prev:hover::after {
    border-right: 17px solid #1a1a1a; }
  .pagination-pointed .prev::before {
    content: ""; }
  .pagination-pointed .prev::after {
    content: "";
    position: absolute;
    top: 0;
    left: -17px;
    width: 0;
    height: 0;
    border-bottom: 17px solid transparent;
    border-top: 17px solid transparent;
    border-right: 17px solid #000000;
    -webkit-transition: all 0.2s linear;
    transition: all 0.2s linear; }

#hero {
  position: relative;
  z-index: 1; }
  #hero .content {
    margin-top: 2.5rem;
    margin-bottom: 3.125rem;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    -webkit-backface-visibility: hidden; }
    @media print, screen and (min-width: 62.5em) {
      #hero .content {
        margin-top: 7.5rem;
        margin-bottom: 7.5rem; } }
    #hero .content .category {
      right: 0;
      top: 80px;
      padding: 0.75rem 2.25rem;
      background-color: #545471;
      color: #fefefe; }
    #hero .content .pretitle {
      font-size: 1.375rem;
      font-weight: 800;
      text-transform: uppercase;
      line-height: 1.15; }
    #hero .content .title {
      margin-bottom: 2.625rem;
      font-weight: 900;
      letter-spacing: 0.1428575em;
      text-align: center;
      text-transform: uppercase; }
    #hero .content p.page-intro {
      margin: auto;
      width: 75%;
      text-align: center; }
    #hero .content .recipe-detail {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      #hero .content .recipe-detail .icon:nth-of-type(2) {
        margin: 0 5px; }
      #hero .content .recipe-detail .icon svg {
        margin-top: 6px;
        width: 36px; }
    #hero .content h4 {
      margin-bottom: 1.875rem;
      font-size: 1.375rem;
      font-weight: 500;
      line-height: 1.2; }
    #hero .content .title + h4 {
      margin-top: -1.375rem; }
    #hero .content a:not(.button) {
      color: inherit; }
    #hero .content .buttongroup {
      display: block;
      text-transform: uppercase;
      font-weight: 600; }
      @media print, screen and (min-width: 62.5em) {
        #hero .content .buttongroup {
          width: auto;
          margin-top: 3rem; } }
    #hero .content.right {
      margin: 0 0 4rem; }
      @media print, screen and (min-width: 62.5em) {
        #hero .content.right {
          margin: 7rem 0 2rem; } }
      #hero .content.right a {
        font-size: 1.25rem; }
  #hero .hero-image-wrapper {
    background-color: #000000;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: -1;
    overflow: hidden; }
    #hero .hero-image-wrapper video {
      position: absolute;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      z-index: 1; }
    #hero .hero-image-wrapper .video-wrapper {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-image: -webkit-gradient(linear, left top, right bottom, from(#002f4b), to(#dc4225));
      background-image: linear-gradient(to bottom right, #002f4b, #dc4225);
      opacity: .6; }
    #hero .hero-image-wrapper .hero-image {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      background-repeat: no-repeat;
      background-size: cover;
      -webkit-animation: move 40s ease;
              animation: move 40s ease; }
      #hero .hero-image-wrapper .hero-image:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 7.5rem;
        left: 0;
        right: 0; }
  #hero .slick-slide .hero-image {
    -webkit-animation: none;
            animation: none; }
  #hero .slick-slide.slick-active .hero-image, #hero .slick-slide[tabindex="0"] .hero-image {
    -webkit-animation: move 40s ease;
            animation: move 40s ease; }
  #hero.light-text {
    background-color: #000000;
    color: #fefefe; }
    #hero.light-text .hero-image-wrapper {
      background-color: #000000; }
      #hero.light-text .hero-image-wrapper .hero-image:after {
        background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.4)), to(rgba(0, 0, 0, 0)));
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%); }
  #hero.dark-text {
    background-color: #fefefe;
    color: #000000; }
    #hero.dark-text .hero-image-wrapper {
      background-color: #fefefe; }
      #hero.dark-text .hero-image-wrapper .hero-image:after {
        background: -webkit-gradient(linear, left top, left bottom, from(rgba(254, 254, 254, 0.4)), to(rgba(254, 254, 254, 0)));
        background: linear-gradient(180deg, rgba(254, 254, 254, 0.4) 0%, rgba(254, 254, 254, 0) 100%); }
  #hero.small {
    background: #fefefe;
    color: #000000; }
    #hero.small .content {
      margin: 3.125rem 0; }
      @media print, screen and (min-width: 62.5em) {
        #hero.small .content {
          margin: 5rem 0; } }
    #hero.small h1 {
      color: #FA6400;
      font-size: 2.5rem; }
    #hero.small + .pagebuilder section:first-child.bg-white {
      padding-top: 0; }
      #hero.small + .pagebuilder section:first-child.bg-white > .row > .column > .row > .column > .pad-small, #hero.small + .pagebuilder section:first-child.bg-white > .row > .columns > .row > .column > .pad-small, #hero.small + .pagebuilder section:first-child.bg-white > .row > .column > .row > .columns > .pad-small, #hero.small + .pagebuilder section:first-child.bg-white > .row > .columns > .row > .columns > .pad-small {
        padding-top: 0; }
  @media print, screen and (min-width: 62.5em) {
    #hero.medium-height {
      min-height: 39.0625rem; } }
  #hero.medium-height .content {
    margin: 1.25rem 0 7.5rem; }
    @media print, screen and (min-width: 62.5em) {
      #hero.medium-height .content {
        margin-bottom: 3.75rem; } }
    @media print, screen and (min-width: 75em) {
      #hero.medium-height .content {
        margin-top: 5.3125rem; } }
  @media print, screen and (min-width: 62.5em) {
    #hero.full-height {
      min-height: 100vh; } }
  #hero.full-height .content {
    margin-bottom: 5.3125rem; }
    @media print, screen and (min-width: 62.5em) {
      #hero.full-height .content {
        margin-top: 12vh; } }
    @media print, screen and (min-width: 75em) {
      #hero.full-height .content {
        margin-top: 25vh; } }
  #hero.hero-home {
    padding: 0rem 0; }
    @media print, screen and (min-width: 75em) {
      #hero.hero-home {
        padding: 0rem 0; } }
    #hero.hero-home .slick-slide {
      height: 100vh; }
    #hero.hero-home .content {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 100%;
      margin: 0;
      text-align: center;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%); }
      #hero.hero-home .content .title {
        text-transform: uppercase;
        position: relative;
        margin-bottom: 1.875rem;
        margin-top: 1.875rem; }
        @media print, screen and (max-width: 74.99875em) {
          #hero.hero-home .content .title {
            font-size: 40px;
            font-weight: 900;
            line-height: 40px; } }
        @media print, screen and (min-width: 75em) {
          #hero.hero-home .content .title {
            font-size: 3.125rem; } }
        @media screen and (min-width: 90em) {
          #hero.hero-home .content .title {
            font-size: 4.375rem; } }
      #hero.hero-home .content .pretitle img, #hero.hero-home .content .subtitle img {
        display: inline; }
      #hero.hero-home .content .pretitle img {
        width: 70vw;
        max-width: 439px; }
      #hero.hero-home .content .subtitle img {
        width: 50vw;
        max-width: 150px; }
      @media print, screen and (min-width: 75em) {
        #hero.hero-home .content p {
          font-size: 1.5rem; } }
  #hero.single .row .column, #hero.single .row .columns {
    position: relative; }
  #hero.single .hero-content {
    padding: 0; }
    #hero.single .hero-content-top {
      background-color: #545471;
      position: relative;
      overflow: hidden; }
      #hero.single .hero-content-top .row-page-title {
        float: right;
        width: 100%; }
        @media print, screen and (min-width: 75em) {
          #hero.single .hero-content-top .row-page-title {
            max-width: 45.0625rem; } }
        @media screen and (min-width: 90em) {
          #hero.single .hero-content-top .row-page-title {
            max-width: 46.0625rem; } }
        #hero.single .hero-content-top .row-page-title .content {
          margin: 4.4rem 0 3.7rem;
          padding: 0 2rem; }
          @media screen and (min-width: 90em) {
            #hero.single .hero-content-top .row-page-title .content {
              padding: 0; } }
          #hero.single .hero-content-top .row-page-title .content .pretitle {
            text-transform: capitalize;
            font-size: 1.5rem;
            margin-bottom: 0.25rem;
            display: block; }
          #hero.single .hero-content-top .row-page-title .content .title {
            margin-bottom: 1.25rem; }
          #hero.single .hero-content-top .row-page-title .content .review-info {
            display: -webkit-box;
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: baseline;
            -webkit-align-items: baseline;
                -ms-flex-align: baseline;
                    align-items: baseline; }
            #hero.single .hero-content-top .row-page-title .content .review-info img {
              margin-right: 5px; }
            #hero.single .hero-content-top .row-page-title .content .review-info a {
              display: inline-block;
              padding-bottom: 3px;
              text-decoration: underline;
              font-size: 1.125rem; }
    #hero.single .hero-content-bottom {
      background-color: #FA6400;
      position: relative;
      overflow: hidden; }
      #hero.single .hero-content-bottom .product-hero-price {
        max-width: 47.0625rem;
        float: right;
        width: 100%;
        padding: 2rem 2rem 0; }
        @media print, screen and (min-width: 62.5em) {
          #hero.single .hero-content-bottom .product-hero-price h3 {
            font-size: 3.125rem; } }
  #hero.single .hero-image-wrapper {
    z-index: 1;
    overflow: visible; }
    @media print, screen and (min-width: 62.5em) {
      #hero.single .hero-image-wrapper {
        left: -1px; } }
    #hero.single .hero-image-wrapper .hero-image {
      min-height: 200px; }
      @media print, screen and (min-width: 62.5em) {
        #hero.single .hero-image-wrapper .hero-image {
          min-height: 450px; } }

@-webkit-keyframes heroImage {
  0% {
    -webkit-transform: scale(1.15);
            transform: scale(1.15); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes heroImage {
  0% {
    -webkit-transform: scale(1.15);
            transform: scale(1.15); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@-webkit-keyframes heroMask {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes heroMask {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

.scroll-btm {
  background-color: #FA6400;
  text-align: center;
  padding: 1.5rem 0 2rem; }
  .scroll-btm a {
    color: #fefefe;
    display: block;
    text-transform: uppercase;
    font-size: 2rem;
    font-family: 'Bebas Neue';
    position: relative; }
    .scroll-btm a:after {
      content: "\25BE";
      position: absolute;
      bottom: -16px;
      font-size: 20px;
      left: 49.5%; }

@-webkit-keyframes move {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.25);
            transform: scale(1.25); } }

@keyframes move {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.25);
            transform: scale(1.25); } }

.archive_filter {
  background: #FBFBFC;
  padding: 1.5rem 0;
  text-align: center; }
  .archive_filter select {
    display: inline-block;
    width: auto;
    margin: 0 0 0 2rem;
    min-width: 12rem; }
  .archive_filter .button, .archive_filter #header #main-menu ul li.primary a, #header #main-menu ul li.primary .archive_filter a, .archive_filter body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .archive_filter a {
    margin: 0; }

.woocommerce .category-title, .woocommerce-page .category-title {
  margin: 5rem 0 -5rem;
  padding: 2.1875rem;
  background: #FA6400;
  color: #fefefe;
  font-size: 1.375rem;
  line-height: 31 / 22;
  text-align: center;
  text-transform: uppercase; }

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce .button,
.woocommerce #header #main-menu ul li.primary a,
#header #main-menu ul li.primary .woocommerce a,
.woocommerce body.scrolled #header.dark-text #main-menu ul li.primary a,
body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce a,
.woocommerce .woocommerce-page .button,
.woocommerce-page .woocommerce .button,
.woocommerce button.button,
.woocommerce .button,
.woocommerce #header #main-menu ul li.primary a,
#header #main-menu ul li.primary .woocommerce a,
.woocommerce body.scrolled #header.dark-text #main-menu ul li.primary a,
body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce a,
.woocommerce input.button, .woocommerce-page #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page .woocommerce .button,
.woocommerce .woocommerce-page .button,
.woocommerce-page .button,
.woocommerce-page #header #main-menu ul li.primary a,
#header #main-menu ul li.primary .woocommerce-page a,
.woocommerce-page body.scrolled #header.dark-text #main-menu ul li.primary a,
body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce-page a,
.woocommerce-page button.button,
.woocommerce-page .button,
.woocommerce-page #header #main-menu ul li.primary a,
#header #main-menu ul li.primary .woocommerce-page a,
.woocommerce-page body.scrolled #header.dark-text #main-menu ul li.primary a,
body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce-page a,
.woocommerce-page input.button {
  background-color: #FA6400 !important; }

.woocommerce .button, .woocommerce #header #main-menu ul li.primary a, #header #main-menu ul li.primary .woocommerce a, .woocommerce body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce a, .woocommerce-page .button, .woocommerce-page #header #main-menu ul li.primary a, #header #main-menu ul li.primary .woocommerce-page a, .woocommerce-page body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce-page a {
  color: #fefefe !important; }

.woocommerce .price, .woocommerce-page .price {
  color: #fefefe !important;
  margin-bottom: 0rem !important; }

.woocommerce .count, .woocommerce-page .count {
  display: none !important; }

.woocommerce div.product .product_title, .woocommerce-page div.product .product_title {
  color: #fefefe !important; }

.woocommerce div.product div.images.woocommerce-product-gallery, .woocommerce-page div.product div.images.woocommerce-product-gallery {
  position: relative;
  float: right !important;
  width: 50% !important; }
  @media print, screen and (max-width: 74.99875em) {
    .woocommerce div.product div.images.woocommerce-product-gallery, .woocommerce-page div.product div.images.woocommerce-product-gallery {
      width: 100% !important; } }

.woocommerce .products ul,
.woocommerce ul.products, .woocommerce-page .products ul,
.woocommerce-page ul.products {
  margin: 0;
  padding: 0;
  list-style: none outside;
  clear: both; }
  .woocommerce .products ul li.product,
  .woocommerce ul.products li.product, .woocommerce-page .products ul li.product,
  .woocommerce-page ul.products li.product {
    float: left;
    margin: 0px 1px 0rem 0 !important;
    padding: 0;
    position: relative;
    margin-left: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
    z-index: 1;
    margin: 0 !important; }
    .woocommerce .products ul li.product a,
    .woocommerce ul.products li.product a, .woocommerce-page .products ul li.product a,
    .woocommerce-page ul.products li.product a {
      display: block;
      border: solid 1px;
      color: #fefefe;
      padding-top: 100%;
      overflow: hidden; }
      .woocommerce .products ul li.product a:before,
      .woocommerce ul.products li.product a:before, .woocommerce-page .products ul li.product a:before,
      .woocommerce-page ul.products li.product a:before {
        content: '';
        position: absolute;
        top: 50%;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: -1;
        background: rgba(0, 0, 0, 0.5);
        background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.75)), to(rgba(0, 0, 0, 0)));
        background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 100%);
        -webkit-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out; }
      .woocommerce .products ul li.product a img,
      .woocommerce ul.products li.product a img, .woocommerce-page .products ul li.product a img,
      .woocommerce-page ul.products li.product a img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        margin: 0;
        z-index: -2;
        -o-object-fit: cover;
           object-fit: cover; }
      .woocommerce .products ul li.product a .woocommerce-loop-category__title,
      .woocommerce .products ul li.product a .woocommerce-loop-product__title,
      .woocommerce .products ul li.product a h3,
      .woocommerce .products ul li.product a .price,
      .woocommerce ul.products li.product a .woocommerce-loop-category__title,
      .woocommerce ul.products li.product a .woocommerce-loop-product__title,
      .woocommerce ul.products li.product a h3,
      .woocommerce ul.products li.product a .price, .woocommerce-page .products ul li.product a .woocommerce-loop-category__title,
      .woocommerce-page .products ul li.product a .woocommerce-loop-product__title,
      .woocommerce-page .products ul li.product a h3,
      .woocommerce-page .products ul li.product a .price,
      .woocommerce-page ul.products li.product a .woocommerce-loop-category__title,
      .woocommerce-page ul.products li.product a .woocommerce-loop-product__title,
      .woocommerce-page ul.products li.product a h3,
      .woocommerce-page ul.products li.product a .price {
        position: absolute;
        bottom: 1.875rem;
        padding: 0.1875rem 0;
        line-height: 1.375rem; }
      .woocommerce .products ul li.product a .woocommerce-loop-category__title,
      .woocommerce .products ul li.product a .woocommerce-loop-product__title,
      .woocommerce .products ul li.product a h3,
      .woocommerce ul.products li.product a .woocommerce-loop-category__title,
      .woocommerce ul.products li.product a .woocommerce-loop-product__title,
      .woocommerce ul.products li.product a h3, .woocommerce-page .products ul li.product a .woocommerce-loop-category__title,
      .woocommerce-page .products ul li.product a .woocommerce-loop-product__title,
      .woocommerce-page .products ul li.product a h3,
      .woocommerce-page ul.products li.product a .woocommerce-loop-category__title,
      .woocommerce-page ul.products li.product a .woocommerce-loop-product__title,
      .woocommerce-page ul.products li.product a h3 {
        left: 1.875rem;
        margin-right: 5rem;
        float: left;
        font-size: 1.125rem;
        font-weight: bold;
        text-transform: uppercase; }
        .woocommerce .products ul li.product a .woocommerce-loop-category__title:after,
        .woocommerce .products ul li.product a .woocommerce-loop-product__title:after,
        .woocommerce .products ul li.product a h3:after,
        .woocommerce ul.products li.product a .woocommerce-loop-category__title:after,
        .woocommerce ul.products li.product a .woocommerce-loop-product__title:after,
        .woocommerce ul.products li.product a h3:after, .woocommerce-page .products ul li.product a .woocommerce-loop-category__title:after,
        .woocommerce-page .products ul li.product a .woocommerce-loop-product__title:after,
        .woocommerce-page .products ul li.product a h3:after,
        .woocommerce-page ul.products li.product a .woocommerce-loop-category__title:after,
        .woocommerce-page ul.products li.product a .woocommerce-loop-product__title:after,
        .woocommerce-page ul.products li.product a h3:after {
          content: '';
          position: absolute;
          left: 0;
          right: 100%;
          bottom: 0;
          height: 2px;
          -webkit-transition: 0.15s ease-in;
          transition: 0.15s ease-in; }
      .woocommerce .products ul li.product a .price,
      .woocommerce ul.products li.product a .price, .woocommerce-page .products ul li.product a .price,
      .woocommerce-page ul.products li.product a .price {
        right: 1.875rem;
        max-width: 4.3125rem;
        font-size: 1.0625rem;
        text-align: right; }
      .woocommerce .products ul li.product a:hover:before,
      .woocommerce ul.products li.product a:hover:before, .woocommerce-page .products ul li.product a:hover:before,
      .woocommerce-page ul.products li.product a:hover:before {
        top: 60%; }
      .woocommerce .products ul li.product a:hover img,
      .woocommerce ul.products li.product a:hover img, .woocommerce-page .products ul li.product a:hover img,
      .woocommerce-page ul.products li.product a:hover img {
        -webkit-transform: scale(1.07);
            -ms-transform: scale(1.07);
                transform: scale(1.07); }
      .woocommerce .products ul li.product a:hover .woocommerce-loop-category__title:after,
      .woocommerce .products ul li.product a:hover .woocommerce-loop-product__title:after,
      .woocommerce .products ul li.product a:hover h3:after,
      .woocommerce ul.products li.product a:hover .woocommerce-loop-category__title:after,
      .woocommerce ul.products li.product a:hover .woocommerce-loop-product__title:after,
      .woocommerce ul.products li.product a:hover h3:after, .woocommerce-page .products ul li.product a:hover .woocommerce-loop-category__title:after,
      .woocommerce-page .products ul li.product a:hover .woocommerce-loop-product__title:after,
      .woocommerce-page .products ul li.product a:hover h3:after,
      .woocommerce-page ul.products li.product a:hover .woocommerce-loop-category__title:after,
      .woocommerce-page ul.products li.product a:hover .woocommerce-loop-product__title:after,
      .woocommerce-page ul.products li.product a:hover h3:after {
        right: 0;
        background: #fefefe; }
    .woocommerce .products ul li.product a,
    .woocommerce ul.products li.product a, .woocommerce-page .products ul li.product a,
    .woocommerce-page ul.products li.product a {
      color: #fefefe; }
      .woocommerce .products ul li.product a img,
      .woocommerce ul.products li.product a img, .woocommerce-page .products ul li.product a img,
      .woocommerce-page ul.products li.product a img {
        -webkit-transition: all 3s cubic-bezier(0.19, 1, 0.22, 1);
        transition: all 3s cubic-bezier(0.19, 1, 0.22, 1); }
      .woocommerce .products ul li.product a:hover,
      .woocommerce ul.products li.product a:hover, .woocommerce-page .products ul li.product a:hover,
      .woocommerce-page ul.products li.product a:hover {
        text-decoration: underline; }
        .woocommerce .products ul li.product a:hover img,
        .woocommerce ul.products li.product a:hover img, .woocommerce-page .products ul li.product a:hover img,
        .woocommerce-page ul.products li.product a:hover img {
          -webkit-transform: scale(1.07);
              -ms-transform: scale(1.07);
                  transform: scale(1.07); }
    .woocommerce .products ul li.product .button, .woocommerce .products #header #main-menu ul li.product li.primary a, #header #main-menu .woocommerce .products ul li.product li.primary a, .woocommerce .products #header #main-menu ul li.primary li.product a, #header #main-menu .woocommerce .products ul li.primary li.product a,
    .woocommerce ul.products li.product .button,
    .woocommerce #header #main-menu ul.products li.product li.primary a,
    #header #main-menu .woocommerce ul.products li.product li.primary a,
    .woocommerce #header #main-menu ul.products li.primary li.product a,
    #header #main-menu .woocommerce ul.products li.primary li.product a, .woocommerce-page .products ul li.product .button, .woocommerce-page .products #header #main-menu ul li.product li.primary a, #header #main-menu .woocommerce-page .products ul li.product li.primary a, .woocommerce-page .products #header #main-menu ul li.primary li.product a, #header #main-menu .woocommerce-page .products ul li.primary li.product a,
    .woocommerce-page ul.products li.product .button,
    .woocommerce-page #header #main-menu ul.products li.product li.primary a,
    #header #main-menu .woocommerce-page ul.products li.product li.primary a,
    .woocommerce-page #header #main-menu ul.products li.primary li.product a,
    #header #main-menu .woocommerce-page ul.products li.primary li.product a {
      margin-top: -4em;
      /* margin-right: 5rem; */
      padding-right: -5rem;
      left: 30px;
      text-transform: uppercase;
      -webkit-box-shadow: 41px 98px 300px 194px rgba(0, 0, 0, 0.26);
      box-shadow: 41px 98px 300px 194px rgba(0, 0, 0, 0.26); }
  .woocommerce .products ul.columns-2 li.product:nth-child(1) a, .woocommerce .products ul.columns-3 li.product:nth-child(1) a,
  .woocommerce ul.products.columns-2 li.product:nth-child(1) a,
  .woocommerce ul.products.columns-3 li.product:nth-child(1) a, .woocommerce-page .products ul.columns-2 li.product:nth-child(1) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(1) a,
  .woocommerce-page ul.products.columns-2 li.product:nth-child(1) a,
  .woocommerce-page ul.products.columns-3 li.product:nth-child(1) a {
    border-top: 0; }
  .woocommerce .products ul.columns-2 li.product:nth-last-child(1) a, .woocommerce .products ul.columns-3 li.product:nth-last-child(1) a,
  .woocommerce ul.products.columns-2 li.product:nth-last-child(1) a,
  .woocommerce ul.products.columns-3 li.product:nth-last-child(1) a, .woocommerce-page .products ul.columns-2 li.product:nth-last-child(1) a, .woocommerce-page .products ul.columns-3 li.product:nth-last-child(1) a,
  .woocommerce-page ul.products.columns-2 li.product:nth-last-child(1) a,
  .woocommerce-page ul.products.columns-3 li.product:nth-last-child(1) a {
    border-bottom: 0; }
  @media print, screen and (max-width: 62.49875em) {
    .woocommerce .products ul.columns-2 li.product, .woocommerce .products ul.columns-3 li.product,
    .woocommerce ul.products.columns-2 li.product,
    .woocommerce ul.products.columns-3 li.product, .woocommerce-page .products ul.columns-2 li.product, .woocommerce-page .products ul.columns-3 li.product,
    .woocommerce-page ul.products.columns-2 li.product,
    .woocommerce-page ul.products.columns-3 li.product {
      width: 100%; }
      .woocommerce .products ul.columns-2 li.product a, .woocommerce .products ul.columns-3 li.product a,
      .woocommerce ul.products.columns-2 li.product a,
      .woocommerce ul.products.columns-3 li.product a, .woocommerce-page .products ul.columns-2 li.product a, .woocommerce-page .products ul.columns-3 li.product a,
      .woocommerce-page ul.products.columns-2 li.product a,
      .woocommerce-page ul.products.columns-3 li.product a {
        border-left: 0;
        border-right: 0; } }
  @media print, screen and (min-width: 62.5em) {
    .woocommerce .products ul.columns-2 li.product,
    .woocommerce ul.products.columns-2 li.product, .woocommerce-page .products ul.columns-2 li.product,
    .woocommerce-page ul.products.columns-2 li.product {
      width: 50%; }
      .woocommerce .products ul.columns-2 li.product:nth-child(2) a,
      .woocommerce ul.products.columns-2 li.product:nth-child(2) a, .woocommerce-page .products ul.columns-2 li.product:nth-child(2) a,
      .woocommerce-page ul.products.columns-2 li.product:nth-child(2) a {
        border-top: 0; }
      .woocommerce .products ul.columns-2 li.product:nth-last-child(2) a,
      .woocommerce ul.products.columns-2 li.product:nth-last-child(2) a, .woocommerce-page .products ul.columns-2 li.product:nth-last-child(2) a,
      .woocommerce-page ul.products.columns-2 li.product:nth-last-child(2) a {
        border-bottom: 0; }
      .woocommerce .products ul.columns-2 li.product:nth-child(2n) a,
      .woocommerce ul.products.columns-2 li.product:nth-child(2n) a, .woocommerce-page .products ul.columns-2 li.product:nth-child(2n) a,
      .woocommerce-page ul.products.columns-2 li.product:nth-child(2n) a {
        border-right: 0; }
      .woocommerce .products ul.columns-2 li.product:nth-child(2n-1) a,
      .woocommerce ul.products.columns-2 li.product:nth-child(2n-1) a, .woocommerce-page .products ul.columns-2 li.product:nth-child(2n-1) a,
      .woocommerce-page ul.products.columns-2 li.product:nth-child(2n-1) a {
        border-left: 0; } }
  @media print, screen and (min-width: 62.5em) {
    .woocommerce .products ul.columns-3 li.product,
    .woocommerce ul.products.columns-3 li.product, .woocommerce-page .products ul.columns-3 li.product,
    .woocommerce-page ul.products.columns-3 li.product {
      width: 50%; }
      .woocommerce .products ul.columns-3 li.product:nth-child(2) a,
      .woocommerce ul.products.columns-3 li.product:nth-child(2) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(2) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-child(2) a {
        border-top: 0; }
      .woocommerce .products ul.columns-3 li.product:nth-last-child(2) a,
      .woocommerce ul.products.columns-3 li.product:nth-last-child(2) a, .woocommerce-page .products ul.columns-3 li.product:nth-last-child(2) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-last-child(2) a {
        border-bottom: 0; } }
  @media print, screen and (min-width: 62.5em) and (max-width: 74.99875em) {
    .woocommerce .products ul.columns-3 li.product:nth-child(2n) a,
    .woocommerce ul.products.columns-3 li.product:nth-child(2n) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(2n) a,
    .woocommerce-page ul.products.columns-3 li.product:nth-child(2n) a {
      border-right: 0; }
    .woocommerce .products ul.columns-3 li.product:nth-child(2n-1) a,
    .woocommerce ul.products.columns-3 li.product:nth-child(2n-1) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(2n-1) a,
    .woocommerce-page ul.products.columns-3 li.product:nth-child(2n-1) a {
      border-left: 0; } }
  @media print, screen and (min-width: 75em) {
    .woocommerce .products ul.columns-3 li.product,
    .woocommerce ul.products.columns-3 li.product, .woocommerce-page .products ul.columns-3 li.product,
    .woocommerce-page ul.products.columns-3 li.product {
      width: 33.333%; }
      .woocommerce .products ul.columns-3 li.product:nth-child(3) a,
      .woocommerce ul.products.columns-3 li.product:nth-child(3) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(3) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-child(3) a {
        border-top: 0; }
      .woocommerce .products ul.columns-3 li.product:nth-last-child(3) a,
      .woocommerce ul.products.columns-3 li.product:nth-last-child(3) a, .woocommerce-page .products ul.columns-3 li.product:nth-last-child(3) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-last-child(3) a {
        border-bottom: 0; }
      .woocommerce .products ul.columns-3 li.product:nth-child(3n) a,
      .woocommerce ul.products.columns-3 li.product:nth-child(3n) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(3n) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-child(3n) a {
        border-right: 0; }
      .woocommerce .products ul.columns-3 li.product:nth-child(3n-2) a,
      .woocommerce ul.products.columns-3 li.product:nth-child(3n-2) a, .woocommerce-page .products ul.columns-3 li.product:nth-child(3n-2) a,
      .woocommerce-page ul.products.columns-3 li.product:nth-child(3n-2) a {
        border-left: 0; } }

.woocommerce > ul.products, .woocommerce-page > ul.products {
  margin: 5rem 0; }

.rp-text {
  color: #fa6500 !important;
  text-transform: uppercase !important;
  /* font-size: 2rem !important; */
  font-size: 22px !important;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 31px; }

.recipe ul {
  margin: 0;
  padding: 0;
  overflow: hidden; }
  .recipe ul li {
    float: left;
    font-size: 22px;
    padding: 10px !important;
    width: 50%;
    float: left; }
    .recipe ul li a {
      display: block;
      color: #fefefe;
      text-align: center;
      padding-right: 30px;
      text-decoration: none;
      padding-left: 0em !important;
      text-align: inherit; }

.woocommerce a.button:hover, .woocommerce .button:hover, .woocommerce #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .woocommerce a:hover, .woocommerce body.scrolled #header.dark-text #main-menu ul li.primary a:hover, body.scrolled #header.dark-text #main-menu ul li.primary .woocommerce a:hover, .woocommerce .woocommerce-page .button:hover, .woocommerce-page .woocommerce .button:hover,
.woocommerce .button a:hover,
.woocommerce #header #main-menu ul li.primary a a:hover,
#header #main-menu ul li.primary .woocommerce a a:hover {
  background-color: #fefefe !important;
  color: #000000 !important;
  text-decoration: none !important; }

.product-cat-button {
  color: #0b0b07 !important;
  left: 0px !important;
  line-height: 30px !important;
  padding: 0.618em 3em !important;
  float: right;
  margin-top: -3em !important;
  text-transform: uppercase;
  font-size: 13px !important;
  margin-right: 30px !important;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 18px;
  text-align: center; }
  @media screen and (max-width: 1399px) {
    .product-cat-button {
      font-size: 13px !important; } }
  @media screen and (max-width: 550px) {
    .product-cat-button {
      font-size: 11px !important; } }

.responsive-embed,
.flex-video {
  padding-bottom: 100% !important;
  height: 100% !important; }

.woocommerce .woocommerce-ordering {
  display: none; }

.woocommerce .woocommerce-result-count {
  display: none; }

@media print, screen and (max-width: 74.99875em) {
  .woocommerce.columns-2 ul.products li.product {
    width: 100% !important; } }

.product-h1 {
  background: #fa6500;
  text-align: center;
  color: #ffffff;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 100px;
  margin-bottom: -1rem;
  text-transform: uppercase; }

.related-products ul li {
  float: left;
  margin: 0px 0.2% 0rem 0 !important;
  padding: 0;
  position: relative;
  margin-left: 0; }

.related-products .price {
  position: absolute !important;
  right: 1rem;
  text-align: right;
  padding-left: 0rem !important; }

.related-products .button, .related-products #header #main-menu ul li.primary a, #header #main-menu ul li.primary .related-products a, .related-products body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .related-products a {
  margin-top: -4em !important; }

.txt-col ul.products li.product {
  margin: 0px 0.2% 0.15rem 0 !important; }

.woocommerce #content div.product .woocommerce-tabs,
.woocommerce div.product .woocommerce-tabs,
.woocommerce-page #content div.product .woocommerce-tabs,
.woocommerce-page div.product .woocommerce-tabs {
  clear: both;
  display: none; }

section#filter_section {
  background-color: #FA6400; }
  section#filter_section #recipe-links {
    text-align: center;
    padding: 1.875rem 0.9375rem; }
    @media (max-width: 600px) {
      section#filter_section #recipe-links {
        padding: 1.875rem 0; } }
    section#filter_section #recipe-links a {
      white-space: nowrap;
      color: #000000;
      font-size: 1rem;
      font-weight: 900;
      line-height: 2.25rem;
      padding: 0 0.9375rem;
      margin: 0 0.3125rem;
      border: 1px solid #000000;
      border-radius: 15px;
      -webkit-transition: background-color 0.3s linear, color 0.3s linear;
      transition: background-color 0.3s linear, color 0.3s linear; }
      section#filter_section #recipe-links a:hover {
        color: #FA6400;
        background-color: #000000; }
      section#filter_section #recipe-links a:focus {
        color: #FA6400;
        background-color: #000000; }
      section#filter_section #recipe-links a.active {
        color: #FA6400;
        background-color: #000000; }

.column .recipe-card, .columns .recipe-card {
  display: block;
  position: relative;
  z-index: 1;
  padding-top: 100%;
  border: solid 1px;
  color: #fefefe;
  overflow: hidden; }
  .column .recipe-card:before, .columns .recipe-card:before {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.5);
    background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.75)), to(rgba(0, 0, 0, 0)));
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 100%);
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out; }
  .column .recipe-card .img-wrap, .columns .recipe-card .img-wrap {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    -webkit-transition: all 0.6s ease-in-out;
    transition: all 0.6s ease-in-out;
    z-index: -1; }
    .column .recipe-card .img-wrap .img-obj, .columns .recipe-card .img-wrap .img-obj {
      top: 0; }
  .column .recipe-card .content, .columns .recipe-card .content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5625rem 1.875rem; }
    .column .recipe-card .content h3, .columns .recipe-card .content h3 {
      position: relative;
      float: left;
      margin: 0 0 0.375rem;
      color: #fefefe;
      font-size: 1.375rem;
      font-weight: bold;
      line-height: 1.75rem;
      text-transform: uppercase; }
      .column .recipe-card .content h3:after, .columns .recipe-card .content h3:after {
        content: '';
        position: absolute;
        left: 0;
        right: 100%;
        bottom: 0;
        height: 2px;
        -webkit-transition: 0.15s ease-in;
        transition: 0.15s ease-in; }
    .column .recipe-card .content .recipe-details, .columns .recipe-card .content .recipe-details {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      width: 100%; }
      .column .recipe-card .content .recipe-details p, .columns .recipe-card .content .recipe-details p {
        clear: both;
        margin: 0;
        list-style: none;
        font-size: 1.25rem;
        line-height: 1.875rem; }
        .column .recipe-card .content .recipe-details p .separator, .columns .recipe-card .content .recipe-details p .separator {
          margin: 0 0.625rem;
          color: #FA6400; }
      .column .recipe-card .content .recipe-details .recipe-icons, .columns .recipe-card .content .recipe-details .recipe-icons {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: baseline;
        -webkit-align-items: baseline;
            -ms-flex-align: baseline;
                align-items: baseline; }
        .column .recipe-card .content .recipe-details .recipe-icons .icon, .columns .recipe-card .content .recipe-details .recipe-icons .icon {
          height: 36px;
          width: 36px;
          margin: 0 5px; }
  .column .recipe-card:hover:before, .columns .recipe-card:hover:before {
    top: 60%; }
  .column .recipe-card:hover .img-wrap, .columns .recipe-card:hover .img-wrap {
    -webkit-transform: scale(1.07);
        -ms-transform: scale(1.07);
            transform: scale(1.07); }
  .column .recipe-card:hover .content h3:after, .columns .recipe-card:hover .content h3:after {
    right: 0;
    background: #fefefe; }

.column:nth-child(1) .recipe-card, .columns:nth-child(1) .recipe-card {
  border-top: 0; }

@media print, screen and (min-width: 62.5em) {
  .column:nth-child(2) .recipe-card, .columns:nth-child(2) .recipe-card {
    border-top: 0; } }

@media print, screen and (min-width: 75em) {
  .column:nth-child(3) .recipe-card, .columns:nth-child(3) .recipe-card {
    border-top: 0; } }

.column:nth-last-child(1) .recipe-card, .columns:nth-last-child(1) .recipe-card {
  border-bottom: 0; }

@media print, screen and (min-width: 62.5em) {
  .column:nth-last-child(2) .recipe-card, .columns:nth-last-child(2) .recipe-card {
    border-bottom: 0; } }

@media print, screen and (min-width: 75em) {
  .column:nth-last-child(3) .recipe-card, .columns:nth-last-child(3) .recipe-card {
    border-bottom: 0; } }

@media print, screen and (max-width: 62.49875em) {
  .column .recipe-card, .columns .recipe-card {
    border-left: 0;
    border-right: 0; } }

@media print, screen and (min-width: 62.5em) and (max-width: 74.99875em) {
  .column:nth-child(2n) .recipe-card, .columns:nth-child(2n) .recipe-card {
    border-right: 0; }
  .column:nth-child(2n-1) .recipe-card, .columns:nth-child(2n-1) .recipe-card {
    border-left: 0; } }

@media print, screen and (min-width: 75em) {
  .column:nth-child(3n) .recipe-card, .columns:nth-child(3n) .recipe-card {
    border-right: 0; }
  .column:nth-child(3n-2) .recipe-card, .columns:nth-child(3n-2) .recipe-card {
    border-left: 0; } }

#hero.recipe {
  background: #000000;
  color: #fefefe; }
  @media print, screen and (min-width: 75em) {
    #hero.recipe {
      min-height: 80vh; } }
  #hero.recipe .img-col {
    width: calc(100% + 30px);
    margin-right: -15px; }
    @media print, screen and (min-width: 75em) {
      #hero.recipe .img-col {
        width: auto; } }
  #hero.recipe .column .img-wrap, #hero.recipe .columns .img-wrap {
    position: relative;
    padding-top: 100%; }
    @media print, screen and (min-width: 62.5em) {
      #hero.recipe .column .img-wrap, #hero.recipe .columns .img-wrap {
        padding-top: 0; } }
    #hero.recipe .column .img-wrap .img-obj, #hero.recipe .columns .img-wrap .img-obj {
      top: 0; }
    @media print, screen and (min-width: 62.5em) {
      #hero.recipe .column .img-wrap, #hero.recipe .columns .img-wrap {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        right: 0; } }
  #hero.recipe .content {
    margin: 4.375rem 0; }
    @media print, screen and (min-width: 62.5em) {
      #hero.recipe .content {
        margin: 7.5rem 0 10.4375rem; } }
  #hero.recipe a.recipe_back_button {
    display: block;
    color: #fefefe;
    margin-top: 10px;
    -webkit-transition: color ease-in 0.15s;
    transition: color ease-in 0.15s; }
    #hero.recipe a.recipe_back_button::before {
      content: "\02190";
      color: inherit;
      margin-right: 6px; }
    #hero.recipe a.recipe_back_button:hover {
      color: #FA6400; }
  #hero.recipe .pretitle {
    color: #FA6400;
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase; }
    @media print, screen and (min-width: 75em) {
      #hero.recipe .pretitle {
        position: absolute;
        top: 5.625rem; } }
  #hero.recipe .title {
    position: relative;
    border-bottom-color: #FA6400;
    letter-spacing: -1px;
    padding-bottom: 2.0625rem;
    margin-bottom: 1.25rem;
    text-align: left; }
    @media print, screen and (min-width: 75em) {
      #hero.recipe .title {
        font-size: 3.75rem; } }
    #hero.recipe .title:after {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      width: 2.5rem;
      height: 5px;
      background: #FA6400; }
  #hero.recipe p {
    clear: both;
    list-style: none;
    font-size: 1.375rem;
    line-height: 1.9375rem; }
    #hero.recipe p .separator {
      margin: 0 0.625rem;
      color: #FA6400; }
    #hero.recipe p .share {
      display: inline-block;
      margin-top: 4.625rem;
      font-weight: bold;
      text-transform: uppercase;
      color: #FA6400; }
      #hero.recipe p .share span {
        padding-right: 0.9375rem; }
      #hero.recipe p .share a {
        padding: 0 0.3125rem; }
        #hero.recipe p .share a svg {
          height: 1.5rem;
          color: #fefefe;
          fill: #fefefe;
          -webkit-transition: all 0.15s ease-in;
          transition: all 0.15s ease-in; }
        #hero.recipe p .share a:hover svg {
          color: #FA6400;
          fill: #FA6400; }

section#related-recipes {
  background: #FA6400; }
  section#related-recipes .row:first-child h2 {
    margin: 2.1875rem 0;
    color: #fefefe;
    font-size: 1.375rem;
    font-weight: bold;
    line-height: 1.4090909091;
    text-align: center; }

.recipe-arch {
  color: #FA6400; }
  .recipe-arch li {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 30px; }
    @media print, screen and (max-width: 62.49875em) {
      .recipe-arch li {
        font-size: 15px; } }
  .recipe-arch a {
    display: block;
    color: white;
    text-align: center;
    padding-right: 30px;
    text-decoration: none;
    padding-left: 0em !important; }

.recipe-arch ul {
  margin: 0;
  padding: 0;
  overflow: hidden;
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important; }

.icons ul {
  margin: 0;
  padding: 0;
  overflow: hidden;
  list-style-type: none !important; }

.icons li {
  float: left;
  font-size: 22px;
  padding: 10px !important;
  list-style-type: none !important; }

.icons li a {
  display: block;
  color: white;
  text-align: center;
  padding-right: 30px;
  text-decoration: none;
  padding-left: 0em !important; }

.ingre-text {
  text-transform: uppercase;
  padding-top: 1rem; }
  .ingre-text ul {
    margin: 1.25rem 0 0; }

.ingredient-div {
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #e2e4e7; }
  @media print, screen and (max-width: 74.99875em) {
    .ingredient-div {
      border-right-width: 0px; } }

.recipe-pad-top {
  padding: 4rem 0; }
  .recipe-pad-top .text-left {
    padding-top: 1rem; }
  .recipe-pad-top p {
    line-height: 1.5; }
  .recipe-pad-top b {
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 28px; }
  .recipe-pad-top li {
    text-transform: none !important;
    margin: 0.8rem 1.2rem !important;
    list-style: disc;
    padding-left: 0 !important; }
  .recipe-pad-top li a {
    display: block;
    color: #000000; }

.recipes ul {
  margin-left: 0rem !important;
  margin-bottom: 0rem !important; }

@media screen and (min-width: 75em) {
  .recipe-left-text {
    padding-top: 18rem;
    padding-left: 22rem; } }

@media screen and (max-width: 1802px) {
  .recipe-left-text {
    padding-top: 16rem;
    padding-left: 20rem; } }

@media screen and (max-width: 1708px) {
  .recipe-left-text {
    padding-top: 12rem;
    padding-left: 16rem; } }

@media screen and (max-width: 1564px) {
  .recipe-left-text {
    padding-top: 11rem;
    padding-left: 7.5rem; } }

@media screen and (max-width: 1250px) {
  .recipe-left-text {
    padding-top: 5rem;
    padding-left: 9rem; } }

@media screen and (max-width: 1198px) {
  .recipe-left-text {
    padding-top: 3rem;
    padding-left: 5rem; } }

@media screen and (max-width: 990px) {
  .recipe-left-text {
    padding-top: 2rem;
    padding-left: 3rem; } }

.share {
  list-style: none;
  margin: 2rem 0 0 0;
  padding: 0; }
  .share li {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0.5rem 0 0; }
    .share li a {
      color: #FA6400;
      font-size: 170%; }
      .share li a:hover {
        color: #000000; }

.recipe-li {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-bottom-color: #e1e4e7;
  width: 85%; }
  .recipe-li:last-child {
    border-bottom-style: none;
    border-bottom-width: 0px; }

.recipe {
  margin-bottom: 0rem; }

@media print, screen and (max-width: 74.99875em) {
  .single-recipe-image {
    margin-bottom: 0rem !important; } }

.related-recipes ul {
  margin-bottom: 0rem !important; }

.woocommerce-page.single-product div.product div.woocommerce-product-gallery {
  margin-bottom: 0; }

.woocommerce-page.single-product div.product div.summary {
  float: right;
  width: 100%;
  margin-bottom: 0;
  padding: 1.875rem;
  clear: both; }
  @media print, screen and (min-width: 75em) {
    .woocommerce-page.single-product div.product div.summary {
      width: 50%;
      max-width: 35.3125rem;
      clear: none;
      padding-top: 7.5rem; } }
  .woocommerce-page.single-product div.product div.summary .product_title {
    position: relative;
    color: #fefefe !important;
    text-transform: uppercase;
    padding-bottom: 2.0625rem; }
    @media print, screen and (min-width: 75em) {
      .woocommerce-page.single-product div.product div.summary .product_title {
        font-size: 3.75rem; } }
    .woocommerce-page.single-product div.product div.summary .product_title:after {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      width: 2.5rem;
      height: 5px;
      background: #FA6400; }
  .woocommerce-page.single-product div.product div.summary .single-price {
    float: left !important;
    padding-left: 0rem !important;
    font-size: 30px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 36px;
    padding-bottom: 2rem !important; }
  .woocommerce-page.single-product div.product div.summary .product-description {
    color: #fefefe !important;
    float: left;
    font-size: 20px !important;
    letter-spacing: 0;
    line-height: 28px !important;
    width: 100%; }
    .woocommerce-page.single-product div.product div.summary .product-description p {
      width: 75%;
      line-height: 1.5; }
  .woocommerce-page.single-product div.product div.summary .attributes {
    clear: both; }

.woocommerce-page.single-product form.cart {
  float: left;
  margin-right: 5rem;
  margin-bottom: 0; }
  .woocommerce-page.single-product form.cart .variations tbody {
    background: none;
    border: 0; }
    .woocommerce-page.single-product form.cart .variations tbody tr {
      background: none; }
      .woocommerce-page.single-product form.cart .variations tbody tr td, .woocommerce-page.single-product form.cart .variations tbody tr th {
        padding: 0; }
        .woocommerce-page.single-product form.cart .variations tbody tr td.label,
        .woocommerce-page.single-product form.cart .variations tbody tr td label, .woocommerce-page.single-product form.cart .variations tbody tr th.label,
        .woocommerce-page.single-product form.cart .variations tbody tr th label {
          background: none;
          color: inherit;
          font-size: 1.25rem;
          line-height: 2.05; }
        .woocommerce-page.single-product form.cart .variations tbody tr td select, .woocommerce-page.single-product form.cart .variations tbody tr th select {
          min-width: 0;
          max-width: 100% !important; }

.woocommerce-page.single-product .product_meta {
  clear: both; }
  .woocommerce-page.single-product .product_meta .sku_wrapper {
    opacity: 0.4; }

.xoo-cp-atcn {
  background: #000000;
  color: #fefefe; }

.xoo-cp-ptitle {
  text-transform: uppercase; }
  .xoo-cp-ptitle a {
    color: inherit; }

.woocommerce-Price-currencySymbol {
  display: inline; }

span.xcp-plus, span.xcp-minus {
  width: 20px;
  color: inherit;
  font-weight: normal; }

.xoo-cp-ptotal {
  text-transform: uppercase;
  font-weight: bold; }

.woocommerce div.product form.cart div.quantity {
  margin: 0px 20px 0 0; }

.woocommerce div.product form.cart .button, .woocommerce div.product form.cart #header #main-menu ul li.primary a, #header #main-menu ul li.primary .woocommerce div.product form.cart a {
  vertical-align: middle;
  float: left;
  color: #000000;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 26px;
  text-align: center;
  border-radius: 3px;
  text-transform: uppercase; }

.woocommerce .quantity .qty {
  width: 3.631em;
  text-align: center;
  height: 3rem !important; }

.related.products,
.upsells.products {
  clear: both; }
  .related.products > h2,
  .upsells.products > h2 {
    background: #FA6400;
    text-align: center;
    color: #fefefe;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 100px;
    margin-top: 0rem;
    margin-bottom: 0rem;
    text-transform: uppercase; }
  .related.products .products,
  .upsells.products .products {
    margin: 0; }

.woocommerce a.added_to_cart {
  display: none; }

.xoo-cp-added, .xoo-cp-adding {
  margin-left: 5px;
  display: none; }

.recipe-section .woocommerce-loop-product__title {
  font-size: 17px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 17px; }

.recipe-section .woocommerce ul.products li.product a {
  margin-top: 2rem  !important; }

.single-product .flex-control-nav {
  position: absolute;
  bottom: 0rem;
  left: 45%; }
  .single-product .flex-control-nav li {
    height: 10px;
    width: 10px;
    border-radius: 50%;
    display: inline-block;
    cursor: pointer;
    background-color: black;
    position: relative;
    opacity: 0.6;
    margin-right: 20px;
    list-style-type: none;
    font-size: 1; }
    .single-product .flex-control-nav li a {
      opacity: -2.4; }

section.cta {
  padding: 5.3125rem 0;
  background: #FA6400;
  text-align: center; }
  section.cta .pretitle, section.cta h2, section.cta .button, section.cta #header #main-menu ul li.primary a, #header #main-menu ul li.primary section.cta a, section.cta body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary section.cta a {
    text-transform: uppercase;
    font-weight: bold; }
  section.cta .pretitle {
    display: block;
    margin: 0 0 1.25rem;
    font-size: 1.25rem;
    line-height: 1; }
  section.cta h2 {
    margin: 0 0 1.875rem;
    color: #fefefe;
    font-size: 1.875rem;
    line-height: 1.1333333333; }

.woocommerce .columns-4 {
  margin: 0px;
  margin-top: 10rem;
  margin-bottom: 5rem; }

.woocommerce div.product .product_title {
  letter-spacing: 0;
  line-height: 56px; }

.woocommerce div.product .price {
  font-weight: 600; }

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  display: none; }

.woocommerce div.product form.cart .button:hover, .woocommerce div.product form.cart #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .woocommerce div.product form.cart a:hover, .woocommerce div.product form.cart #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .woocommerce div.product form.cart a:hover {
  background-color: #ffffff !important;
  color: #000000 !important; }

.woocommerce div.product form.cart .reset_variations {
  visibility: hidden  !important; }

.woocommerce div.product form.cart .variations select {
  max-width: 65% !important; }

.woocommerce div.product p.stock {
  visibility: hidden !important; }

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-account .woocommerce {
  padding: 1.25rem 0; }
  body.woocommerce-cart .woocommerce h2, body.woocommerce-cart .woocommerce h3,
  body.woocommerce-checkout .woocommerce h2,
  body.woocommerce-checkout .woocommerce h3,
  body.woocommerce-account .woocommerce h2,
  body.woocommerce-account .woocommerce h3 {
    font-size: 2.375rem;
    text-transform: uppercase;
    margin: 2.5rem 0 1.25rem; }
  body.woocommerce-cart .woocommerce table.shop_table,
  body.woocommerce-checkout .woocommerce table.shop_table,
  body.woocommerce-account .woocommerce table.shop_table {
    border: 0;
    border-radius: 0;
    border-spacing: 0; }
  body.woocommerce-cart .woocommerce table thead,
  body.woocommerce-checkout .woocommerce table thead,
  body.woocommerce-account .woocommerce table thead {
    background: #000000;
    text-transform: uppercase; }
  body.woocommerce-cart .woocommerce table tr th,
  body.woocommerce-checkout .woocommerce table tr th,
  body.woocommerce-account .woocommerce table tr th {
    text-transform: uppercase; }
  body.woocommerce-cart .woocommerce table tr td a,
  body.woocommerce-checkout .woocommerce table tr td a,
  body.woocommerce-account .woocommerce table tr td a {
    color: inherit; }
    body.woocommerce-cart .woocommerce table tr td a:hover,
    body.woocommerce-checkout .woocommerce table tr td a:hover,
    body.woocommerce-account .woocommerce table tr td a:hover {
      text-decoration: underline; }
  body.woocommerce-cart .woocommerce table tr td span,
  body.woocommerce-checkout .woocommerce table tr td span,
  body.woocommerce-account .woocommerce table tr td span {
    color: inherit; }
  body.woocommerce-cart .woocommerce .product-quantity,
  body.woocommerce-checkout .woocommerce .product-quantity,
  body.woocommerce-account .woocommerce .product-quantity {
    text-align: right; }
    @media screen and (min-width: 769px) {
      body.woocommerce-cart .woocommerce .product-quantity,
      body.woocommerce-checkout .woocommerce .product-quantity,
      body.woocommerce-account .woocommerce .product-quantity {
        text-align: center; } }
    body.woocommerce-cart .woocommerce .product-quantity .qty,
    body.woocommerce-checkout .woocommerce .product-quantity .qty,
    body.woocommerce-account .woocommerce .product-quantity .qty {
      display: inline-block; }
  body.woocommerce-cart .woocommerce strong.product-quantity,
  body.woocommerce-checkout .woocommerce strong.product-quantity,
  body.woocommerce-account .woocommerce strong.product-quantity {
    color: #FA6400;
    font-weight: normal; }
  body.woocommerce-cart .woocommerce .button, body.woocommerce-cart .woocommerce #header #main-menu ul li.primary a, #header #main-menu ul li.primary body.woocommerce-cart .woocommerce a,
  body.woocommerce-checkout .woocommerce .button,
  body.woocommerce-checkout .woocommerce #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary body.woocommerce-checkout .woocommerce a,
  body.woocommerce-account .woocommerce .button,
  body.woocommerce-account .woocommerce #header #main-menu ul li.primary a,
  #header #main-menu ul li.primary body.woocommerce-account .woocommerce a {
    background-color: #000000 !important;
    border: solid 1px #000000;
    text-transform: uppercase; }
    body.woocommerce-cart .woocommerce .button:hover, body.woocommerce-cart .woocommerce #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary body.woocommerce-cart .woocommerce a:hover,
    body.woocommerce-checkout .woocommerce .button:hover,
    body.woocommerce-checkout .woocommerce #header #main-menu ul li.primary a:hover,
    #header #main-menu ul li.primary body.woocommerce-checkout .woocommerce a:hover,
    body.woocommerce-account .woocommerce .button:hover,
    body.woocommerce-account .woocommerce #header #main-menu ul li.primary a:hover,
    #header #main-menu ul li.primary body.woocommerce-account .woocommerce a:hover {
      background-color: #fefefe;
      color: #000000; }

#header #main-menu ul li.wpmenucartli a.wpmenucart-contents:hover {
  color: #FA6400;
  opacity: 1;
  text-decoration: none; }

#sagepaydirect-cc-form .wc-credit-card-form-card-type,
#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc,
#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry,
#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number,
.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc,
.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry,
.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number,
.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,
.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,
.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number {
  font-size: inherit; }

#add_payment_method table.cart td.actions .coupon .input-text,
.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce-checkout table.cart td.actions .coupon .input-text {
  min-width: 10rem; }

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  border-top-color: #FA6400; }
  .woocommerce-error:before,
  .woocommerce-info:before,
  .woocommerce-message:before {
    color: #FA6400; }

.woocommerce-form-login-toggle {
  padding: 2.5rem 0; }
  .woocommerce-form-login-toggle p {
    text-align: center; }
  .woocommerce-form-login-toggle ul {
    margin: 2.5rem auto;
    list-style: none;
    text-align: center;
    width: 16.875rem;
    max-width: 100%; }
    .woocommerce-form-login-toggle ul li {
      margin-bottom: 2px;
      background: #f7f6f7; }
      .woocommerce-form-login-toggle ul li a {
        position: relative;
        padding: 10px 30px;
        display: block;
        color: #000000;
        z-index: 1; }
        .woocommerce-form-login-toggle ul li a:before {
          content: '';
          position: absolute;
          left: 0;
          right: 100%;
          top: 0;
          bottom: 0;
          background: #FA6400;
          border: solid 2px #FA6400;
          z-index: -1;
          -webkit-transition: all 0.3s ease-in-out;
          transition: all 0.3s ease-in-out; }
        .woocommerce-form-login-toggle ul li a:after {
          content: '';
          display: inline-block;
          width: 6px;
          height: 6px;
          margin: 0 0 2px 4px;
          border: solid;
          border-width: 1px 1px 0 0;
          -webkit-transform: rotate(45deg);
              -ms-transform: rotate(45deg);
                  transform: rotate(45deg); }
        .woocommerce-form-login-toggle ul li a:hover:before {
          right: 0;
          opacity: 0.67; }

.woocommerce-form-login-toggle ~ .woocommerce-checkout,
.woocommerce-form-login-toggle ~ .woocommerce-form-coupon-toggle {
  display: none; }

form.woocommerce-checkout #customer_details > div {
  margin: 0 auto;
  float: none; }

form.woocommerce-checkout #customer_details #billing_company_field,
form.woocommerce-checkout #customer_details #shipping_company_field,
form.woocommerce-checkout #customer_details #order_comments_field {
  display: none; }

form.woocommerce-checkout #customer_details #ship-to-different-address span {
  font-weight: bold;
  font-size: 1.2em;
  line-height: 1; }

form.woocommerce-checkout h3 {
  text-align: center; }

body.woocommerce-account .woocommerce {
  padding: 0; }
  body.woocommerce-account .woocommerce #respond input#submit, body.woocommerce-account .woocommerce a.button, body.woocommerce-account .woocommerce .button, body.woocommerce-account .woocommerce #header #main-menu ul li.primary a, body.woocommerce-account #header #main-menu ul li.primary .woocommerce a, #header #main-menu ul li.primary body.woocommerce-account .woocommerce a, body.woocommerce-account .woocommerce .woocommerce-page .button, .woocommerce-page body.woocommerce-account .woocommerce .button, body.woocommerce-account .woocommerce button.button, body.woocommerce-account .woocommerce .button, body.woocommerce-account .woocommerce #header #main-menu ul li.primary a, #header #main-menu ul li.primary body.woocommerce-account .woocommerce a, body.woocommerce-account .woocommerce input.button {
    padding: 0.6em 1em 0.4em; }
  body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0; }
    @media (min-width: 769px) {
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul {
        margin: 0 0 11.25rem; } }
    body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li {
      background: -webkit-gradient(linear, left top, right top, color-stop(75%, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.1)));
      background: linear-gradient(to right, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0.1) 100%); }
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li a {
        display: block;
        padding: 8px 10px;
        -webkit-transition: all 0.15s ease-in-out;
        transition: all 0.15s ease-in-out; }
        body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li a:hover {
          background: rgba(0, 0, 0, 0.05);
          -webkit-transform: translateY(-1px);
              -ms-transform: translateY(-1px);
                  transform: translateY(-1px); }
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li:first-child a {
        padding-top: 2.5rem; }
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li:last-child a {
        padding-bottom: 2.5rem; }
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--downloads {
        display: none; }
      body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li.is-active a {
        background: #FA6400 !important;
        color: #fefefe;
        cursor: default;
        position: relative;
        -webkit-box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.5);
                box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.5);
        -webkit-transform: translateY(-1px);
            -ms-transform: translateY(-1px);
                transform: translateY(-1px); }
        body.woocommerce-account .woocommerce nav.woocommerce-MyAccount-navigation ul li.is-active a:after {
          content: '';
          position: absolute;
          left: 100%;
          top: 50%;
          margin-top: -10px;
          border: solid;
          border-width: 10px 0 10px 15px;
          border-color: transparent transparent transparent #FA6400; }
  body.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
    padding: 2.5rem 0; }
    @media (min-width: 769px) {
      body.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
        padding-top: 1.25rem;
        padding-left: 1.875rem; } }
    body.woocommerce-account .woocommerce .woocommerce-MyAccount-content h2, body.woocommerce-account .woocommerce .woocommerce-MyAccount-content h3 {
      margin: 0;
      font-size: 1.5rem; }
    body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-Address {
      position: relative;
      margin-bottom: 1.875rem;
      border-right: solid 1px; }
      body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-Address h2, body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-Address h3 {
        padding-right: 3.125rem; }
      body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-Address .edit {
        position: absolute;
        right: 1.25rem; }

#customer_login {
  margin-bottom: 1.875rem; }
  #customer_login form .form-row label {
    padding: 0.5em 0;
    line-height: 1; }
  #customer_login h2, #customer_login form, #customer_login input {
    text-align: center; }
  #customer_login h2 {
    margin: 0; }
  #customer_login form .password-input input[type=password] {
    padding-right: 0.5rem; }
  #customer_login .woocommerce-form-login__submit,
  #customer_login .woocommerce-form-register__submit {
    float: none;
    display: block;
    margin: 0.9375rem auto; }
  #customer_login.register-only > div, #customer_login.login-only > div {
    margin: 0 auto;
    float: none; }
  #customer_login.register-only .col-1 {
    display: none; }
  #customer_login.login-only .col-2 {
    display: none; }

.pagebuilder section.general-content-area {
  /* Text meant only for screen readers. */ }
  .pagebuilder section.general-content-area .img-col, .pagebuilder section.general-content-area .video-col .text-col {
    display: block;
    height: 100%; }
    .pagebuilder section.general-content-area .img-col img, .pagebuilder section.general-content-area .video-col .text-col img {
      -webkit-transition: all 3s cubic-bezier(0.19, 1, 0.22, 1);
      transition: all 3s cubic-bezier(0.19, 1, 0.22, 1); }
    .pagebuilder section.general-content-area .img-col a:hover img, .pagebuilder section.general-content-area .video-col .text-col a:hover img {
      -webkit-transform: scale(1.01);
          -ms-transform: scale(1.01);
              transform: scale(1.01); }
  @media print, screen and (min-width: 62.5em) {
    .pagebuilder section.general-content-area .column:not(:only-child).txt-col, .pagebuilder section.general-content-area .columns:not(:only-child).txt-col {
      max-width: 56.25rem;
      float: left; }
      .pagebuilder section.general-content-area .column:not(:only-child).txt-col:first-child, .pagebuilder section.general-content-area .columns:not(:only-child).txt-col:first-child {
        float: right; }
    .pagebuilder section.general-content-area .row.rtl .txt-col {
      float: right; }
      .pagebuilder section.general-content-area .row.rtl .txt-col:first-child {
        float: left; } }
  .pagebuilder section.general-content-area h3 {
    font-family: Brandon, Arial, sans-serif;
    font-size: 36px;
    line-height: 40px;
    text-transform: uppercase;
    margin: 1rem 0 1rem; }
    .pagebuilder section.general-content-area h3.pretitle {
      color: #FA6400; }
  .pagebuilder section.general-content-area.bg-primary h3.pretitle, .pagebuilder section.general-content-area .bg-primary h3.pretitle {
    color: #000000; }
  .pagebuilder section.general-content-area .button, .pagebuilder section.general-content-area #header #main-menu ul li.primary a, #header #main-menu ul li.primary .pagebuilder section.general-content-area a {
    border-radius: 3px;
    font-family: Brandon, Arial, sans-serif;
    font-size: 16px;
    text-align: center;
    line-height: 18px;
    font-weight: 600;
    margin: 1rem 0 1rem; }
    .pagebuilder section.general-content-area .button:focus, .pagebuilder section.general-content-area #header #main-menu ul li.primary a:focus, #header #main-menu ul li.primary .pagebuilder section.general-content-area a:focus {
      background-color: #ffffff !important;
      color: #000000 !important; }
    .pagebuilder section.general-content-area .button:hover, .pagebuilder section.general-content-area #header #main-menu ul li.primary a:hover, #header #main-menu ul li.primary .pagebuilder section.general-content-area a:hover {
      background-color: #ffffff !important;
      color: #000000 !important; }
  .pagebuilder section.general-content-area .button.primary, .pagebuilder section.general-content-area #header #main-menu ul li.primary a.primary, #header #main-menu ul li.primary .pagebuilder section.general-content-area a.primary {
    border-radius: 3px;
    font-family: Brandon, Arial, sans-serif;
    font-size: 16px;
    text-align: center;
    line-height: 18px;
    font-weight: 600;
    margin: 1rem 0 1rem; }
    .pagebuilder section.general-content-area .button.primary:focus, .pagebuilder section.general-content-area #header #main-menu ul li.primary a.primary:focus, #header #main-menu ul li.primary .pagebuilder section.general-content-area a.primary:focus {
      background-color: #ffffff !important; }
    .pagebuilder section.general-content-area .button.primary:hover, .pagebuilder section.general-content-area #header #main-menu ul li.primary a.primary:hover, #header #main-menu ul li.primary .pagebuilder section.general-content-area a.primary:hover {
      background-color: #ffffff !important; }
  .pagebuilder section.general-content-area .responsive-embed, .pagebuilder section.general-content-area .flex-video {
    margin-bottom: 0; }
  @media print, screen and (min-width: 75em) {
    .pagebuilder section.general-content-area.has-media-col .txt-col {
      padding: 6rem; } }
  @media print, screen and (min-width: 75em) {
    .pagebuilder section.general-content-area.has-media-col .txt-col.after {
      content: '';
      position: absolute;
      top: 100%;
      left: 50%;
      height: 0;
      width: 0;
      z-index: -1;
      border-right: solid 50px transparent;
      border-left: solid 50px transparent;
      border-top: solid 50px #FA6400;
      -webkit-transform: translateX(-50%);
          -ms-transform: translateX(-50%);
              transform: translateX(-50%); } }
  .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns {
    position: relative; }
    @media print, screen and (min-width: 62.5em) {
      .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns {
        padding: 6rem 6rem; } }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns {
        padding: 50% 0 0;
        /* 1:1 Aspect Ratio */ } }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .txt-col, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .txt-col {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); } }
    .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .txt-col p, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .txt-col p {
      text-align: center;
      padding: 0 1.5rem; }
    .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .img-col, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .img-col {
      height: 100% !important; }
      @media print, screen and (min-width: 62.5em) {
        .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .img-col, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .img-col {
          padding-bottom: 0 !important; } }
      @media print, screen and (min-width: 75em) {
        .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .img-col, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .img-col {
          height: 0 !important;
          padding-bottom: 100% !important; } }
    .pagebuilder section.general-content-area.has-media-col.expanded .column.medium-6 .video-col, .pagebuilder section.general-content-area.has-media-col.expanded .medium-6.columns .video-col {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0; }
  .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2), .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2) {
    position: relative; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2):after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2):after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      top: 50%;
      right: 100%;
      margin-top: -50px;
      border-style: solid;
      border-width: 40px 30px 40px 0;
      border-color: transparent #fefefe transparent transparent; }
      @media print, screen and (max-width: 74.99875em) {
        .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2):after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2):after {
          display: none; } }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-primary:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-primary:after {
      border-color: transparent #FA6400 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-secondary:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-secondary:after {
      border-color: transparent #000000 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-success:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-success:after {
      border-color: transparent #8ABD24 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-warning:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-warning:after {
      border-color: transparent #ffae00 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-alert:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-alert:after {
      border-color: transparent #cc4b37 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-light-gray:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-light-gray:after {
      border-color: transparent #FBFBFC transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-medium-gray:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-medium-gray:after {
      border-color: transparent #c1c1d0 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-dark-gray:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-dark-gray:after {
      border-color: transparent #545471 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-black:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-black:after {
      border-color: transparent #000000 transparent transparent; }
    .pagebuilder section.general-content-area.has-media-col .column.medium-6:nth-child(2).bg-white:after, .pagebuilder section.general-content-area.has-media-col .medium-6.columns:nth-child(2).bg-white:after {
      border-color: transparent #fefefe transparent transparent; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2):after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2):after {
    right: auto;
    left: 100%;
    border-width: 40px 0 40px 30px;
    border-color: transparent transparent transparent #fefefe; }
    @media print, screen and (max-width: 74.99875em) {
      .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2):after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2):after {
        display: none; } }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-primary:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-primary:after {
    border-color: transparent transparent transparent #FA6400; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-secondary:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-secondary:after {
    border-color: transparent transparent transparent #000000; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-success:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-success:after {
    border-color: transparent transparent transparent #8ABD24; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-warning:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-warning:after {
    border-color: transparent transparent transparent #ffae00; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-alert:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-alert:after {
    border-color: transparent transparent transparent #cc4b37; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-light-gray:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-light-gray:after {
    border-color: transparent transparent transparent #FBFBFC; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-medium-gray:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-medium-gray:after {
    border-color: transparent transparent transparent #c1c1d0; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-dark-gray:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-dark-gray:after {
    border-color: transparent transparent transparent #545471; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-black:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-black:after {
    border-color: transparent transparent transparent #000000; }
  .pagebuilder section.general-content-area.has-media-col .rtl .column.medium-6:nth-child(2).bg-white:after, .pagebuilder section.general-content-area.has-media-col .rtl .medium-6.columns:nth-child(2).bg-white:after {
    border-color: transparent transparent transparent #fefefe; }
  .pagebuilder section.general-content-area.not-expanded {
    padding: 6.25rem 0; }
    .pagebuilder section.general-content-area.not-expanded + .not-expanded {
      padding-top: 0; }
  .pagebuilder section.general-content-area .pretitle {
    -webkit-transform: rotate(-360deg);
        -ms-transform: rotate(-360deg);
            transform: rotate(-360deg);
    font-family: Brandon, Arial, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
    text-align: center;
    line-height: 20px;
    margin-bottom: 0.5rem; }
  .pagebuilder section.general-content-area .bottom {
    margin-bottom: 0px; }
    @media print, screen and (max-width: 74.99875em) {
      .pagebuilder section.general-content-area .bottom {
        margin-bottom: -25px; } }
  @media print, screen and (max-width: 74.99875em) {
    .pagebuilder section.general-content-area .pad-top {
      padding: 30px 0px; } }
  .pagebuilder section.general-content-area hr {
    display: block;
    border: none;
    background: #FA6400;
    height: .4rem;
    max-width: 8rem;
    margin: 0;
    margin-top: 2rem;
    margin-bottom: 3rem; }
  .pagebuilder section.general-content-area p {
    font-size: 1.25rem;
    line-height: 20 / 28; }
  .pagebuilder section.general-content-area .alignnone {
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area .aligncenter,
  .pagebuilder section.general-content-area div.aligncenter {
    display: block;
    margin: 5px auto 5px auto; }
  .pagebuilder section.general-content-area .alignright {
    float: right;
    margin: 5px 0 20px 20px; }
  .pagebuilder section.general-content-area .alignleft {
    float: left;
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area a img.alignright {
    float: right;
    margin: 5px 0 20px 20px; }
  .pagebuilder section.general-content-area a img.alignnone {
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto; }
  .pagebuilder section.general-content-area .wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    /* Image does not overflow the content area */
    padding: 5px 3px 10px;
    text-align: center; }
  .pagebuilder section.general-content-area .wp-caption.alignnone {
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area .wp-caption.alignleft {
    margin: 5px 20px 20px 0; }
  .pagebuilder section.general-content-area .wp-caption.alignright {
    margin: 5px 0 20px 20px; }
  .pagebuilder section.general-content-area .wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto; }
  .pagebuilder section.general-content-area .wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px; }
  .pagebuilder section.general-content-area .screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    /* Many screen reader and browser combinations announce broken words as they would appear visually. */ }
  .pagebuilder section.general-content-area .screen-reader-text:focus {
    background-color: #eee;
    clip: auto !important;
    -webkit-clip-path: none;
            clip-path: none;
    color: #444;
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
    /* Above WP toolbar. */ }

.floaty-enabled .pagebuilder section.general-content-area .floaty {
  margin-top: -1.5625rem; }

.pull-out-content span {
  color: #000000;
  text-transform: uppercase; }

.pagebuilder section.accordions h3 {
  margin-top: 1.875rem; }

.accordion {
  background: none; }
  .accordion-item + .accordion-item {
    border-top: solid 1px; }
  .accordion-item > .accordion-title {
    padding: 10px 0 10px; }
    .accordion-item > .accordion-title:before {
      margin-top: -0.9375rem; }
    .accordion-item > .accordion-title h4 {
      font-weight: inherit;
      font-size: 20px; }
    .accordion-item > .accordion-title:hover, .accordion-item > .accordion-title:focus {
      background-color: transparent; }
  .accordion-item .accordion-content {
    padding: 0 40px 20px;
    background-color: transparent;
    border: 0;
    padding-bottom: 10px; }
  .accordion-item.is-active > .accordion-title {
    color: #FA6400;
    font-weight: bold; }
    .accordion-item.is-active > .accordion-title:before {
      margin-top: -1.1875rem; }

.pagebuilder section.blocklinks {
  color: #fefefe; }
  .pagebuilder section.blocklinks a:not(.button) {
    color: #fefefe; }
  .pagebuilder section.blocklinks .column, .pagebuilder section.blocklinks .columns {
    position: relative; }
    .pagebuilder section.blocklinks .column .row, .pagebuilder section.blocklinks .columns .row {
      background-color: #545471; }
    .pagebuilder section.blocklinks .column .background-image, .pagebuilder section.blocklinks .columns .background-image {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      background-position: center;
      background-size: cover;
      -webkit-transition: -webkit-transform 1.2s ease-in-out;
      transition: -webkit-transform 1.2s ease-in-out;
      transition: transform 1.2s ease-in-out;
      transition: transform 1.2s ease-in-out, -webkit-transform 1.2s ease-in-out; }
      .pagebuilder section.blocklinks .column .background-image:after, .pagebuilder section.blocklinks .columns .background-image:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        background: -webkit-gradient(linear, left bottom, left top, color-stop(40%, #000), to(rgba(0, 0, 0, 0)));
        background: linear-gradient(0deg, #000 40%, rgba(0, 0, 0, 0) 100%);
        opacity: 0.69; }
    .pagebuilder section.blocklinks .column .content, .pagebuilder section.blocklinks .columns .content {
      position: relative;
      padding: 3.75rem 0;
      text-align: center; }
      @media print, screen and (min-width: 62.5em) {
        .pagebuilder section.blocklinks .column .content, .pagebuilder section.blocklinks .columns .content {
          padding: 3.75rem; } }
      @media print, screen and (min-width: 62.5em) {
        .pagebuilder section.blocklinks .column .content, .pagebuilder section.blocklinks .columns .content {
          padding: 12.5rem 5rem 9.375rem; } }
      .pagebuilder section.blocklinks .column .content h2, .pagebuilder section.blocklinks .columns .content h2 {
        font-weight: 800;
        line-height: 1.2;
        text-transform: uppercase; }
  .pagebuilder section.blocklinks a.column, .pagebuilder section.blocklinks a.columns {
    display: block;
    position: relative;
    overflow: hidden; }
    .pagebuilder section.blocklinks a.column:hover .background-image, .pagebuilder section.blocklinks a.columns:hover .background-image {
      -webkit-transform: scale(1.025);
          -ms-transform: scale(1.025);
              transform: scale(1.025); }
    .pagebuilder section.blocklinks a.column:hover .button-solid-red:hover, .pagebuilder section.blocklinks a.columns:hover .button-solid-red:hover {
      border-color: #fefefe; }
    .pagebuilder section.blocklinks a.column:hover .button-solid-white:hover, .pagebuilder section.blocklinks a.columns:hover .button-solid-white:hover {
      border-color: #FA6400; }

.pagebuilder section.contact {
  padding-top: 0; }
  .pagebuilder section.contact .gform_confirmation_message {
    margin-top: 3.75rem;
    background: #FA6400;
    color: #fefefe;
    padding: 1rem; }
  @media print, screen and (max-width: 89.99875em) {
    .pagebuilder section.contact .row {
      margin-right: 0rem; } }
  @media print, screen and (max-width: 62.49875em) {
    .pagebuilder section.contact .row {
      margin-right: 0rem;
      margin-bottom: 7rem; } }
  @media print, screen and (max-width: 62.49875em) {
    .pagebuilder section.contact img {
      margin-top: 20rem; } }
  .pagebuilder section.contact .contact-div {
    margin-top: 10rem !important;
    padding: 4rem;
    position: absolute;
    background-color: white; }
    @media print, screen and (max-width: 74.99875em) {
      .pagebuilder section.contact .contact-div {
        margin-top: 0rem !important; } }
    .pagebuilder section.contact .contact-div h2 {
      color: #000;
      font-size: 22px !important;
      font-weight: 900 !important;
      letter-spacing: 0 !important;
      line-height: 31px !important;
      margin-top: 0rem !important; }
    .pagebuilder section.contact .contact-div p {
      color: #000 !important;
      font-size: 20px !important;
      letter-spacing: 0 !important;
      line-height: 28px !important; }
  .pagebuilder section.contact .content {
    color: #fefefe;
    z-index: 0; }
    .pagebuilder section.contact .content a {
      color: inherit; }
      .pagebuilder section.contact .content a.address, .pagebuilder section.contact .content a.phone, .pagebuilder section.contact .content a.email {
        display: block;
        margin-bottom: 0.75rem;
        padding: 0.75rem 0; }
        .pagebuilder section.contact .content a.address svg, .pagebuilder section.contact .content a.phone svg, .pagebuilder section.contact .content a.email svg {
          fill: #fefefe; }
    .pagebuilder section.contact .content h2 {
      font-weight: 500;
      font-size: 2rem; }
      @media print, screen and (min-width: 62.5em) {
        .pagebuilder section.contact .content h2 {
          margin-top: 3.5rem; } }
    .pagebuilder section.contact .content p {
      font-weight: 400;
      line-height: 2rem; }
    .pagebuilder section.contact .content form {
      margin-top: 1.5rem; }
      .pagebuilder section.contact .content form [type="text"],
      .pagebuilder section.contact .content form [type="password"],
      .pagebuilder section.contact .content form [type="date"],
      .pagebuilder section.contact .content form [type="datetime"],
      .pagebuilder section.contact .content form [type="datetime-local"],
      .pagebuilder section.contact .content form [type="month"],
      .pagebuilder section.contact .content form [type="week"],
      .pagebuilder section.contact .content form [type="email"],
      .pagebuilder section.contact .content form [type="number"],
      .pagebuilder section.contact .content form [type="search"],
      .pagebuilder section.contact .content form [type="tel"],
      .pagebuilder section.contact .content form [type="time"],
      .pagebuilder section.contact .content form [type="url"],
      .pagebuilder section.contact .content form [type="color"],
      .pagebuilder section.contact .content form textarea,
      .pagebuilder section.contact .content form select {
        color: inherit;
        border-radius: 5px;
        padding: 26px 20px !important;
        margin-bottom: 0;
        background-color: rgba(0, 0, 0, 0.05);
        border: none; }
      .pagebuilder section.contact .content form ::-webkit-input-placeholder {
        /* WebKit browsers */
        color: #000 !important;
        opacity: 1;
        font-size: 20px;
        letter-spacing: 0;
        line-height: 28px; }
      .pagebuilder section.contact .content form [type="text"] {
        width: 49.5%;
        float: left;
        border-radius: 3px !important;
        padding: 30px 20px !important; }
      .pagebuilder section.contact .content form [type="email"] {
        width: 49.5%;
        float: right;
        margin-top: -2.6rem;
        border-radius: 3px !important;
        padding: 30px 20px !important; }
      .pagebuilder section.contact .content form textarea {
        resize: none; }
      .pagebuilder section.contact .content form [type="submit"] {
        border-radius: 3px;
        margin-bottom: 0;
        padding: 5px; }
        @media print, screen and (min-width: 62.5em) {
          .pagebuilder section.contact .content form [type="submit"] {
            padding: 20px 20px; } }
      .pagebuilder section.contact .content form .gform_fields .gfield input::-webkit-input-placeholder {
        /* Chrome/Opera/Safari */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield input::-moz-placeholder {
        /* Firefox 19+ */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield input:-ms-input-placeholder {
        /* IE 10+ */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield input:-moz-placeholder {
        /* Firefox 18- */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield textarea::-webkit-input-placeholder {
        /* Chrome/Opera/Safari */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield textarea::-moz-placeholder {
        /* Firefox 19+ */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield textarea:-ms-input-placeholder {
        /* IE 10+ */
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields .gfield textarea:-moz-placeholder {
        /* Firefox 18- */
        color: #fefefe; }
      .pagebuilder section.contact .content form .validation_error {
        background: #790000;
        color: #fefefe; }
      .pagebuilder section.contact .content form .gform_fields input,
      .pagebuilder section.contact .content form .gform_fields textarea {
        background-color: #79716c;
        border: none; }
      @media print, screen and (min-width: 62.5em) {
        .pagebuilder section.contact .content form .gform_fields .gf_full {
          overflow: hidden; } }
      .pagebuilder section.contact .content form .gform_fields .gf_full input {
        width: 100%; }
      .pagebuilder section.contact .content form .gform_fields .gfield.gfield_error {
        padding: 1rem;
        border: none; }
      .pagebuilder section.contact .content form input.gform_button {
        float: right;
        width: 48%;
        border: none; }
        .pagebuilder section.contact .content form input.gform_button:hover {
          background-color: #FA6400;
          color: #fefefe; }
      .pagebuilder section.contact .content form input[type="submit"] {
        background-color: #fefefe;
        min-width: 12.5rem;
        font-size: 18px !important;
        font-weight: 900 !important;
        letter-spacing: 0 !important;
        line-height: 26px !important;
        text-align: center !important;
        border: none !important;
        text-transform: uppercase !important; }
      .pagebuilder section.contact .content form .wpcf7-form-control-wrap {
        position: relative;
        display: block; }
        .pagebuilder section.contact .content form .wpcf7-form-control-wrap .wpcf7-not-valid {
          margin-bottom: 1.875rem; }
        .pagebuilder section.contact .content form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
          position: absolute;
          left: 0;
          right: 0;
          top: 100%;
          height: 1.875rem;
          padding: 0.375rem;
          background: #FA6400;
          border: solid 1px #fefefe;
          color: #fefefe;
          font-size: 0.875rem;
          line-height: 1.2; }
    .pagebuilder section.contact .content .screen-reader-response,
    .pagebuilder section.contact .content .wpcf7-validation-errors {
      font-weight: 800; }
      .pagebuilder section.contact .content .screen-reader-response ul,
      .pagebuilder section.contact .content .wpcf7-validation-errors ul {
        display: none; }
  .pagebuilder section.contact.has-map .content:before {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: 0;
    bottom: 0;
    z-index: -1; }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.contact.has-map .content:before {
        left: -25%;
        right: -50%; } }
  .pagebuilder section.contact.has-map .content.red:before {
    background: #FA6400; }
  .pagebuilder section.contact.has-map .content.blue:before {
    background: #000000; }
  .pagebuilder section.contact.has-map .content.green:before {
    background: #8ABD24; }
  .pagebuilder section.contact.has-map .acf-map,
  .pagebuilder section.contact.has-map .map-image {
    height: 18.75rem; }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.contact.has-map .acf-map,
      .pagebuilder section.contact.has-map .map-image {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        right: 0;
        width: auto;
        height: auto;
        margin-top: 4.0625rem;
        margin-bottom: -4.0625rem;
        z-index: 1; } }
  .pagebuilder section.contact.has-map + section {
    padding-top: 4.0625rem; }

.pagebuilder section.white + section.contact.has-map {
  background-color: #fefefe; }

.pagebuilder section.light-gray + section.contact.has-map {
  background-color: #FBFBFC; }

.pagebuilder section.medium-gray + section.contact.has-map {
  background-color: #c1c1d0; }

.pagebuilder section.dark-gray + section.contact.has-map {
  background-color: #545471; }

.pagebuilder section.red + section.contact.has-map {
  background-color: #FA6400; }

.pagebuilder section.blue + section.contact.has-map {
  background-color: #000000; }

.pagebuilder section.green + section.contact.has-map {
  background-color: #8ABD24; }

.pagebuilder section.contact .content form input[type="submit"] {
  background-color: #fa6500;
  min-width: 12.5rem; }

.text-image-block {
  position: relative; }
  .text-image-block .wrapper .image {
    max-width: 100%;
    height: auto;
    position: relative; }
  .text-image-block .wrapper .content {
    position: relative; }
    @media print, screen and (max-width: 74.99875em) {
      .text-image-block .wrapper .content {
        text-align: left; } }
    .text-image-block .wrapper .content h3 {
      margin-bottom: 1rem;
      color: #FA6400; }
    .text-image-block .wrapper .content h4 {
      margin-top: -1rem;
      margin-bottom: 1rem; }
    .text-image-block .wrapper .content p {
      margin-bottom: 2rem; }

.ie-9 .video-play {
  display: none !important; }

.pagebuilder section.separator,
section.separator {
  padding: 5rem 0;
  text-align: center; }
  .pagebuilder section.separator svg,
  section.separator svg {
    height: 4.1875rem;
    fill: #FA6400; }

.image-slider-container {
  position: relative; }

.image-slider--slide {
  outline: none;
  cursor: -webkit-grab;
  cursor: grab; }
  .image-slider--slide:active {
    cursor: -webkit-grabbing;
    cursor: grabbing; }
  .image-slider--slide .caption {
    margin-top: 1.5rem;
    font-size: 0.9rem;
    text-align: center; }

.full-width {
  position: relative; }
  .full-width .image-slider--slide {
    position: relative; }
    .full-width .image-slider--slide .caption {
      position: absolute;
      bottom: 0;
      right: 0;
      width: 100%;
      padding: 1.5rem 0;
      /* FF3.6-15 */
      /* Chrome10-25,Safari5.1-6 */
      background: -webkit-gradient(linear, left top, left bottom, from(rgba(250, 100, 0, 0)), color-stop(10%, rgba(250, 100, 0, 0.1)), to(#fa6400));
      background: linear-gradient(to bottom, rgba(250, 100, 0, 0) 0%, rgba(250, 100, 0, 0.1) 10%, #fa6400 100%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1a000000', endColorstr='#000000',GradientType=0 );
      /* IE6-9 */ }
      .full-width .image-slider--slide .caption p {
        color: #fefefe;
        font-size: 2rem;
        font-weight: bold; }

.image-slider--controls {
  width: 100%;
  padding: 0 3rem;
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
      transform: translateY(-50%);
  -webkit-transform: translateY(-50%); }
  @media print, screen and (min-width: 75em) {
    .image-slider--controls {
      padding: 0 6rem; } }
  .image-slider--controls i, .image-slider--controls svg {
    display: inline-block;
    width: 1.8rem;
    height: 1.8rem;
    fill: #fefefe;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    -webkit-backface-visibility: hidden; }
  .image-slider--controls-prev {
    -webkit-transform: scaleX(-1);
    -ms-transform: scaleX(-1);
        transform: scaleX(-1); }
    .image-slider--controls-prev:hover svg {
      margin-left: -1rem; }
  .image-slider--controls-next {
    float: right; }
    .image-slider--controls-next:hover svg {
      margin-right: -1rem; }
  .image-slider--controls button, .image-slider--controls .button, .image-slider--controls #header #main-menu ul li.primary a, #header #main-menu ul li.primary .image-slider--controls a, .image-slider--controls body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .image-slider--controls a {
    position: relative;
    z-index: 10;
    cursor: pointer; }

.logo-carousel {
  list-style-type: none;
  margin: 0 !important;
  padding: 0; }
  .logo-carousel li {
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 70%;
    height: 100px; }
  .logo-carousel .slick-dots {
    text-align: center;
    margin: 2rem 0 0 0; }
    .logo-carousel .slick-dots li {
      height: 10px;
      width: 10px;
      border-radius: 50%;
      display: inline-block;
      cursor: pointer; }
      .logo-carousel .slick-dots li.slick-active {
        background-color: #FA6400; }

.page-feature-section {
  background-color: #FBFBFC; }
  .page-feature-section .feature-card {
    background-color: #FA6400;
    color: #fefefe;
    border: 0;
    border-radius: 20px;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .page-feature-section .feature-card .feature-img {
      min-height: 14rem;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: center center;
      position: relative;
      border-radius: 20px 20px 0px 0px; }
      .page-feature-section .feature-card .feature-img a {
        position: absolute;
        width: 100%;
        height: 100%; }
    .page-feature-section .feature-card .card-details {
      padding: 2rem;
      color: #000000; }
      .page-feature-section .feature-card .card-details span {
        color: #000000; }
        .page-feature-section .feature-card .card-details span a {
          color: #000000; }
      .page-feature-section .feature-card .card-details h3 {
        margin: 0 0 1rem 0;
        text-transform: none;
        color: #fefefe; }
      .page-feature-section .feature-card .card-details .cta {
        margin: 1rem 0 0 0; }
  .page-feature-section .columns {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 0 1rem 0; }
    @media print, screen and (min-width: 62.5em) {
      .page-feature-section .columns {
        margin: 0; } }

.page-features {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-content: stretch;
      -ms-flex-line-pack: stretch;
          align-content: stretch;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  @media print, screen and (min-width: 62.5em) {
    .page-features {
      -webkit-box-flex: 1;
      -webkit-flex-grow: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; } }
  .page-features .news-card-twitter {
    background-color: #1da1f2;
    color: #fefefe;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }

.pagebuilder section.parallax {
  background-repeat: no-repeat;
  background-size: 70%;
  background-position: center; }
  .pagebuilder section.parallax.without-content {
    height: 46.875rem;
    max-height: 60vh; }
    .pagebuilder section.parallax.without-content .image:after {
      opacity: 0; }
  .pagebuilder section.parallax .image {
    background-position: center;
    background-size: cover;
    height: 100%;
    width: 100%;
    position: absolute;
    z-index: 0;
    background-attachment: fixed; }
    .pagebuilder section.parallax .image:after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      background: #000000;
      opacity: 0.5;
      -webkit-transition: opacity 0.2s ease-in-out;
      transition: opacity 0.2s ease-in-out; }
  .pagebuilder section.parallax .content {
    padding: 6.25rem 0;
    color: #fefefe;
    text-align: center;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }
    @media print, screen and (min-width: 62.5em) {
      .pagebuilder section.parallax .content {
        padding-left: 5rem;
        padding-right: 5rem;
        margin-top: 2.5rem;
        margin-bottom: 2.5rem; } }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.parallax .content {
        text-align: left; } }
    .pagebuilder section.parallax .content > * {
      position: relative;
      z-index: 2; }
    .pagebuilder section.parallax .content h2 {
      line-height: 1.2;
      text-transform: none;
      font-size: 30px;
      text-align: center;
      font-weight: 600;
      line-height: 34px;
      -webkit-transform: rotate(-360deg);
          -ms-transform: rotate(-360deg);
              transform: rotate(-360deg);
      color: #000000; }
    .pagebuilder section.parallax .content p {
      text-align: center;
      color: #FA6400; }
  .pagebuilder section.parallax.video {
    cursor: pointer; }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.parallax.video .column, .pagebuilder section.parallax.video .columns {
        margin-left: 58.33333%; } }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.parallax.video .content {
        padding-right: 0.625rem; } }
    .pagebuilder section.parallax.video .content .play-button {
      width: 3.75rem;
      height: 3.75rem;
      margin: 0.3125rem;
      background-image: url("images/play.svg");
      background-position: top;
      background-repeat: no-repeat;
      background-size: 100% auto;
      -webkit-transition: all 0.2s ease-in-out;
      transition: all 0.2s ease-in-out; }
      @media print, screen and (min-width: 75em) {
        .pagebuilder section.parallax.video .content .play-button {
          position: absolute;
          top: 50%;
          left: 33.333%;
          width: 7.5rem;
          height: 7.5rem;
          margin: -3.75rem 0 0 -3.75rem; } }
    .pagebuilder section.parallax.video.with-content:after {
      left: 50%; }
      @media print, screen and (min-width: 75em) {
        .pagebuilder section.parallax.video.with-content:after {
          top: 50%; } }
    .pagebuilder section.parallax.video:hover .image:after {
      opacity: 0.6; }
    @media print, screen and (min-width: 75em) {
      .pagebuilder section.parallax.video:hover .content {
        padding-left: 0.625rem;
        padding-right: 5rem; } }
    .pagebuilder section.parallax.video:hover .content .play-button {
      width: 4.375rem;
      height: 4.375rem;
      margin: 0; }
      @media print, screen and (min-width: 75em) {
        .pagebuilder section.parallax.video:hover .content .play-button {
          width: 8.125rem;
          height: 8.125rem;
          margin: -4.0625rem 0 0 -4.0625rem; } }

.modal {
  position: fixed;
  opacity: 0;
  z-index: -999999;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out; }
  .modal .overlay {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8); }
    .modal .overlay:before {
      content: 'X';
      position: absolute;
      right: 1.5rem;
      top: 1.5rem;
      padding: 0.5em 0.6em 0.4em;
      background: #FA6400;
      border-radius: 50%;
      color: #fefefe;
      font-weight: 800;
      line-height: 1; }
  .modal iframe {
    position: absolute;
    left: 10%;
    top: 10%;
    width: 80%;
    height: 80%;
    -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
            transform: scale(0.5);
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out; }
  .modal.active {
    opacity: 1;
    z-index: 999999; }
    .modal.active iframe {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }

html.ios .pagebuilder section.parallax .image {
  background-attachment: initial; }

.quicklink {
  position: relative;
  display: block; }
  .quicklink a {
    display: block;
    color: #000000; }
    .quicklink a .icon-image {
      display: block;
      text-align: center;
      margin: 0 auto; }
      .quicklink a .icon-image img {
        margin: 0 auto 1rem auto;
        display: block;
        max-width: 100%;
        height: auto;
        -webkit-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out;
        -webkit-backface-visibility: hidden; }
    .quicklink a .content {
      display: block;
      margin: 0 0 3rem 0; }
      .quicklink a .content h4 {
        text-transform: none;
        margin: 0 0 1.5rem 0; }
      .quicklink a .content p {
        margin: 0 0 1.5rem 0; }
      .quicklink a .content a {
        color: #000000; }
    .quicklink a:hover img {
      opacity: .8; }
    .quicklink a:hover h3 {
      text-decoration: underline; }

.services {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  position: relative; }
  .services .services-block {
    position: relative;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-color: rgba(0, 0, 0, 0.1);
    height: 300px; }
    @media print, screen and (min-width: 62.5em) {
      .services .services-block {
        height: 500px; } }
    .services .services-block .services-content {
      opacity: 1;
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      background-color: rgba(250, 100, 0, 0.2);
      color: #fefefe;
      padding: 1.3rem; }
      @media print, screen and (min-width: 62.5em) {
        .services .services-block .services-content {
          padding: 1.6rem; } }
      @media print, screen and (min-width: 75em) {
        .services .services-block .services-content {
          padding: 2rem; } }
      .services .services-block .services-content i {
        color: #FA6400; }
      .services .services-block .services-content h2 {
        color: #fefefe;
        font-size: 1.5rem; }
        @media print, screen and (min-width: 62.5em) {
          .services .services-block .services-content h2 {
            font-size: 2rem; } }
      .services .services-block .services-content .cover-link {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }
    .services .services-block:hover .services-content {
      opacity: 1;
      background-color: rgba(250, 100, 0, 0.8); }
    .services .services-block-last .services-content {
      opacity: 1;
      background-color: #000000; }
      .services .services-block-last .services-content a {
        position: absolute;
        bottom: 3rem; }

.pagination {
  background-color: #FBFBFC;
  overflow: hidden;
  padding: 2rem 0;
  margin: 0; }
  .pagination ul {
    margin: 0;
    padding: 0;
    text-align: center; }
    .pagination ul li a {
      color: #000000; }

.filters {
  background-color: #FBFBFC;
  overflow: hidden;
  padding: 2rem 0;
  margin: 0;
  text-align: center; }
  .filters ul {
    margin: 0;
    padding: 0; }
    .filters ul li {
      list-style: none;
      display: inline-block;
      vertical-align: middle;
      margin: 0 0.5rem; }
      .filters ul li a {
        color: #000000;
        position: relative;
        padding: 0 0 0 1.5rem; }
        .filters ul li a:before {
          content: "";
          display: inline-block;
          vertical-align: middle;
          height: 10px;
          width: 10px;
          background-color: transparent;
          border: 2px solid #FA6400;
          border-radius: 50%;
          position: absolute;
          top: 15%;
          left: 0.5rem; }
      .filters ul li.active a {
        color: #FA6400; }
        .filters ul li.active a:before {
          border-color: #000000;
          background-color: #000000; }

.pagebuilder section.stockists .gm-style {
  margin-top: 7.5rem !important; }
  .pagebuilder section.stockists .gm-style iframe + div {
    margin-top: -7.5rem; }
  .pagebuilder section.stockists .gm-style #pac-input {
    position: relative !important;
    top: -7.5rem !important;
    left: 0 !important;
    padding: 1.875rem 2.5rem;
    border: solid 1.875rem #FA6400;
    text-align: center; }
    .pagebuilder section.stockists .gm-style #pac-input:active, .pagebuilder section.stockists .gm-style #pac-input:focus {
      border-color: #FA6400; }

.pagebuilder section.stockists #map {
  width: 100%;
  height: calc(100vh - 355px);
  min-height: 600px; }
  @media print, screen and (min-width: 75em) {
    .pagebuilder section.stockists #map {
      min-height: 800px; } }

.pagebuilder section.stockists .icon svg {
  height: 1.875rem;
  fill: #FA6400; }

.pagebuilder section.stockists .gm-style-iw-d h3 {
  margin: 0 0 0.3125rem;
  font-size: 1.125rem; }

.pagebuilder section.stockists .gm-style-iw-d p {
  font-size: 0.75rem; }

.tabbed-content .title-area p {
  margin-bottom: 2rem; }

.tabs-content {
  margin: 0 0 3rem 0;
  padding: 2rem; }

.tabs {
  margin: 0 !important;
  background-color: #757575;
  color: #fefefe;
  -webkit-align-content: center;
      -ms-flex-line-pack: center;
          align-content: center; }
  @media print, screen and (min-width: 62.5em) {
    .tabs {
      -webkit-align-content: stretch;
          -ms-flex-line-pack: stretch;
              align-content: stretch;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; } }
  .tabs li {
    text-align: center;
    width: 100%; }
    @media print, screen and (min-width: 62.5em) {
      .tabs li {
        -webkit-box-flex: 1;
        -webkit-flex-grow: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        width: auto; } }
    .tabs li.is-active a {
      background-color: #fa6400;
      position: relative; }
      .tabs li.is-active a:after {
        top: 100%;
        left: 50%;
        border: solid transparent;
        content: "";
        height: 0;
        width: 0;
        position: absolute;
        pointer-events: none;
        border-color: rgba(250, 100, 0, 0);
        border-top-color: #FA6400;
        border-width: 10px;
        margin-left: -10px; }
    .tabs li h4 {
      margin: 0;
      padding: 0;
      text-transform: none;
      color: #fefefe; }
    .tabs li a {
      color: #fefefe;
      position: relative; }
      .tabs li a:hover {
        background-color: #fa6400; }
        .tabs li a:hover:after {
          top: 100%;
          left: 50%;
          border: solid transparent;
          content: "";
          height: 0;
          width: 0;
          position: absolute;
          pointer-events: none;
          border-color: rgba(250, 100, 0, 0);
          border-top-color: #FA6400;
          border-width: 10px;
          margin-left: -10px; }

table thead {
  color: #fefefe;
  background-color: #FA6400; }
  table thead th {
    padding: 1rem 1.5rem; }

table tr td {
  padding: 1rem 1.5rem; }
  table tr td span {
    display: block;
    color: #FA6400;
    font-weight: bold; }

.testimonials {
  position: relative;
  text-align: center; }
  .testimonials .slick-dots {
    text-align: center;
    margin: 2rem 0 0 0; }
    .testimonials .slick-dots li {
      height: 10px;
      width: 10px;
      border-radius: 50%;
      display: inline-block;
      background-color: #FBFBFC;
      cursor: pointer; }
      .testimonials .slick-dots li.slick-active {
        background-color: #FA6400; }
  .testimonials h3 {
    color: #FA6400;
    margin: 0 0 2rem 0; }
  .testimonials ul {
    margin: 2rem 0 0 0;
    list-style: none; }
    .testimonials ul li {
      outline: none;
      list-style: none;
      cursor: -webkit-grab;
      cursor: grab; }
      .testimonials ul li:active {
        cursor: -webkit-grabbing;
        cursor: grabbing; }
  .testimonials blockquote {
    border: 0;
    padding: 0; }
    .testimonials blockquote p {
      font-size: 1.8rem;
      margin-bottom: 1.5rem;
      text-align: center; }
  .testimonials author {
    font-size: 1.6rem;
    color: #FA6400;
    text-align: center;
    display: block; }
  .testimonials .controls {
    display: block;
    margin-top: 2rem; }
    .testimonials .controls i, .testimonials .controls svg {
      display: inline-block;
      width: 2rem;
      height: 2rem;
      fill: #545471;
      -webkit-transition: all 0.3s ease-in-out;
      transition: all 0.3s ease-in-out;
      -webkit-backface-visibility: hidden; }
    .testimonials .controls button, .testimonials .controls .button, .testimonials .controls #header #main-menu ul li.primary a, #header #main-menu ul li.primary .testimonials .controls a, .testimonials .controls body.scrolled #header.dark-text #main-menu ul li.primary a, body.scrolled #header.dark-text #main-menu ul li.primary .testimonials .controls a {
      display: inline-block;
      cursor: pointer;
      margin-right: 1rem; }
      .testimonials .controls button:last-child, .testimonials .controls .button:last-child, .testimonials .controls #header #main-menu ul li.primary a:last-child, #header #main-menu ul li.primary .testimonials .controls a:last-child {
        margin-right: 0; }
      .testimonials .controls button svg, .testimonials .controls .button svg, .testimonials .controls #header #main-menu ul li.primary a svg, #header #main-menu ul li.primary .testimonials .controls a svg {
        fill: #FA6400; }

.text-block, .text-block-two, .text-block-three, .text-block-four {
  position: relative; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfdGhlbWUtZGVzYy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC10cmFuc2Zvcm1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2ZvbnQtc3R5bGluZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2xpc3Qtc3R5bGUtdHlwZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdW5kZWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NoYWRvdy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Fycm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2VwYXJhdG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19vdmVyZmxvdy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Rpc3BsYXkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItYm94LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLW5vbmUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zaXppbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zcGFjaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsInBsdWdpbnMvX3NsaWNrLWNhcm91c2VsLnNjc3MiLCJwbHVnaW5zL19zbGljay1jb250cm9scy5zY3NzIiwiZ2xvYmFsL19idXR0b25zLnNjc3MiLCJnbG9iYWwvX3R5cG9ncmFwaHkuc2NzcyIsImdsb2JhbC9fZ2xvYmFsLnNjc3MiLCJnbG9iYWwvX3BhZGRpbmcuc2NzcyIsImdsb2JhbC9fYW5pbWF0aW9uLnNjc3MiLCJnbG9iYWwvX2Rlc2lnbmdyaWQuc2NzcyIsImdsb2JhbC9faW1hZ2VzLnNjc3MiLCJnbG9iYWwvX2lubmVyZ3JpZC5zY3NzIiwicGFydHMvcmVwZWF0cy9faGVhZGVyLnNjc3MiLCJwYXJ0cy9yZXBlYXRzL19tYWluLnNjc3MiLCJwYXJ0cy9yZXBlYXRzL19mb290ZXIuc2NzcyIsInBhcnRzL3JlcGVhdHMvX2NhcmQuc2NzcyIsInBhcnRzL3JlcGVhdHMvX3BhZ2luYXRpb24uc2NzcyIsInBhcnRzL3JlcGVhdHMvX2hlcm8uc2NzcyIsImdsb2JhbC9fbWl4aW5zLnNjc3MiLCJwYXJ0cy9yZXBlYXRzL19hcmNoaXZlX2ZpbHRlci5zY3NzIiwicGFydHMvcmVwZWF0cy9wcm9kdWN0LWdyaWQuc2NzcyIsInBhcnRzL3JlcGVhdHMvcmVjaXBlLnNjc3MiLCJwYXJ0cy9yZXBlYXRzL3NpbmdsZS1wcm9kdWN0LnNjc3MiLCJwYXJ0cy9yZXBlYXRzL19jdGEuc2NzcyIsInBhcnRzL3JlcGVhdHMvd29vY29tbWVyY2Uuc2NzcyIsInBhcnRzL3dvb2NvbW1lcmNlL2NhcnQuc2NzcyIsInBhcnRzL3dvb2NvbW1lcmNlL2FjY291bnQuc2NzcyIsInBhZ2VidWlsZGVyL2dlbmVyYWwuc2NzcyIsInBhZ2VidWlsZGVyL2FjY29yZGlvbnMuc2NzcyIsInBhZ2VidWlsZGVyL2Jsb2NrbGlua3Muc2NzcyIsInBhZ2VidWlsZGVyL2NvbnRhY3Quc2NzcyIsInBhZ2VidWlsZGVyL3RleHQtaW1hZ2UtYmxvY2suc2NzcyIsInBhZ2VidWlsZGVyL3NlcGFyYXRvci5zY3NzIiwicGFnZWJ1aWxkZXIvaW1hZ2Utc2xpZGVyLnNjc3MiLCJwYWdlYnVpbGRlci9sb2dvLWNhcm91c2VsLnNjc3MiLCJwYWdlYnVpbGRlci9wYWdlLWZlYXR1cmUuc2NzcyIsInBhZ2VidWlsZGVyL3BhcmFsbGF4LnNjc3MiLCJwYWdlYnVpbGRlci9xdWlja2xpbmsuc2NzcyIsInBhZ2VidWlsZGVyL3NlcnZpY2VzLnNjc3MiLCJwYWdlYnVpbGRlci9zdG9ja2lzdHMuc2NzcyIsInBhZ2VidWlsZGVyL3RhYmJlZC1jb250ZW50LnNjc3MiLCJwYWdlYnVpbGRlci90YWJsZS1jb250ZW50LnNjc3MiLCJwYWdlYnVpbGRlci90ZXN0aW1vbmlhbHMuc2NzcyIsInBhZ2VidWlsZGVyL3RleHQtYmxvY2suc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7OztDRFVDO0FFVkQ7Ozs7O0VGZ0JFO0FHYkEsMkVBQUE7QUFRQTtFQUNFLGlCQUFpQjtFQUNqQiw4QkFBOEIsRUFBQTs7QUFRaEM7RUFDRSxTQUFTLEVBQUE7O0FBTVg7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCLEVBQUE7O0FBU2xCO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsaUJBQWlCLEVBQUE7O0FBTW5CO0VBQ0UsaUNBQWlDO0VBQ2pDLGNBQWMsRUFBQTs7QUFRaEI7RUFDRSw2QkFBNkIsRUFBQTs7QUFNL0I7RUFDRSxnQkFBZ0I7RUFDaEIseUNBQWlDO1VBQWpDLGlDQUFpQyxFQUFBOztBQUtuQzs7RUFFRSxtQkFBbUIsRUFBQTs7QUFNckI7OztFQUdFLGlDQUFpQztFQUNqQyxjQUFjLEVBQUE7O0FBS2hCO0VBQ0UsY0FBYyxFQUFBOztBQU1oQjs7RUFFRSxjQUFjO0VBQ2QsY0FBYztF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LGdCTG9FOEQ7RUtuRTlELHlCUndEb0MsRUFBQTtFUXREcEM7SUFFRSxTQUFTO0lBQ1QsdUJMOEQ0RDtJSzdENUQsb0JMNkQ0RCxFQUFBOztBSjhHOUQ7RVVyTEEsaUJBRnNKO0VBR3RKLGdCTnNFOEQ7RU1yRTlELGVUd2QrQjtFU3RkL0Isd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIseUJUdURvQztFU3REcEMsZ0JUMEdlO0VTekdmLHlCVHdEYTtFU3REYixvQlR3Y3lCO0VTdmN6QixlTjZEOEQ7RU01RDlELG1CVG1HMkI7RVNsRzNCLGdCVHNDcUI7RVNyQ3JCLGNUaURhO0VDaUViLHNPQUF5TjtFUTlHdk4sOEJBQThCO0VBQzlCLHVDQUEwRDtFQUMxRCw0QkFBNEI7RUFDNUIsd0JBQXdCO0VBRXhCLHFCQUF1RDtFQUl2RCwyRVRvYzhEO0VTcGM5RCxtRVRvYzhEO0VTcGM5RCwyRFRvYzhEO0VTcGM5RCxvRlRvYzhELEVBQUE7RUM3VmhFO0lGb0RBO01FakRJLHVXQUF1VyxFQUFBLEVRbkUxVztFQW5DRDtJQUNFLGFBQWE7SUFDYix5QlQ2QmdDO0lTNUJoQyx5QlQ4Qlc7SVM3QlgsbUNUMEJrQztZUzFCbEMsMkJUMEJrQztJU3ZCaEMsMkVUeWI0RDtJU3piNUQsbUVUeWI0RDtJU3piNUQsMkRUeWI0RDtJU3piNUQsb0ZUeWI0RCxFQUFBO0VTcGJoRTtJQUNFLHlCVGdCZ0I7SVNmaEIsbUJUaWIrQixFQUFBO0VTN2FqQztJQUNFLGFBQWEsRUFBQTtFQUdmO0lBQ0UsWUFBWTtJQUNaLHNCQUFzQixFQUFBO0VBRXhCO0lBQ0UsY0FBYztJQUNkLGlCQUFpQixFQUFBOztBQ3JDbkI7RUFDRSxxQlZpRFk7RVVoRFoseUJBQStELEVBQUE7RUFFL0Q7SUFDRSxjVjZDVSxFQUFBO0VVOUNaO0lBQ0UsY1Y2Q1UsRUFBQTtFVTlDWjtJQUNFLGNWNkNVLEVBQUE7RVU5Q1o7SUFDRSxjVjZDVSxFQUFBO0VVOUNaO0lBQ0UsY1Y2Q1UsRUFBQTs7QVVuQlo7RUFDRSxjVmtCVSxFQUFBOztBVWJkO0VBekJBLGFBQWE7RUFDYixtQkFBZ0M7RUFDaEMsbUJQb0M4RDtFT2xDOUQsa0JQa0M4RDtFT2pDOUQsaUJWeUV1QjtFVXhFdkIsY1ZnQ2MsRUFBQTtFVWJkO0lBSUksY0FBYyxFQUFBOztBQzhJbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsU0FBUztFQUNULFVBQVUsRUFBQTs7QUFJWjtFQUNFLG1CWHJDMEI7RVd1QzFCLGtCQUFrQjtFQUNsQixnQlh6Q3NCO0VXMEN0QixrQ1h4Q3lDLEVBQUE7O0FXNEMzQzs7RUFFRSxrQkFBa0I7RUFDbEIsb0JBQW9CLEVBQUE7O0FBSXRCOztFQUVFLGlCWHZJcUI7RVd3SXJCLG9CQUFvQixFQUFBOztBYnJMdEI7RWEwTEUsY1gvRGlCO0VXZ0VqQixvQkFBb0IsRUFBQTs7QUFJdEI7Ozs7OztFQU1FLHVDWDlKeUM7RVcrSnpDLGtCWDNHc0I7RVc0R3RCLGlCWDFKcUI7RVcySnJCLGNYM0drQjtFVzRHbEIsa0NYL0VzQyxFQUFBO0VXcUV4Qzs7Ozs7O0lBYUksY0FBYztJQUNkLGNYbk5nQyxFQUFBOztBVzROOUI7RUFJSSxlUnJOb0Q7RVFpT3BELGdCWHhJVztFV2dKWCxhQUFhO0VBT2IscUJYdEppQixFQUFBOztBV3VIckI7RUFJSSxtQlJyTm9EO0VRaU9wRCxnQlh4SVc7RVdnSlgsYUFBYTtFQU9iLHFCWHRKaUIsRUFBQTs7QVd1SHJCO0VBSUksbUJSck5vRDtFUWlPcEQsZ0JYeElXO0VXZ0pYLGFBQWE7RUFPYixxQlh0SmlCLEVBQUE7O0FXdUhyQjtFQUlJLG1CUnJOb0Q7RVFpT3BELGdCWHhJVztFV2dKWCxhQUFhO0VBT2IscUJYdEppQixFQUFBOztBV3VIckI7RUFJSSxvQlJyTm9EO0VRaU9wRCxnQlh4SVc7RVdnSlgsYUFBYTtFQU9iLHFCWHRKaUIsRUFBQTs7QVd1SHJCO0VBSUksZVJyTm9EO0VRaU9wRCxnQlh4SVc7RVdnSlgsYUFBYTtFQU9iLHFCWHRKaUIsRUFBQTs7QVlMckI7RUQ0SEE7SUFJSSxlUnJOb0QsRUFBQTtFUWlOeEQ7SUFJSSxpQlJyTm9ELEVBQUE7RVFpTnhEO0lBSUksb0JSck5vRCxFQUFBO0VRaU54RDtJQUlJLG9CUnJOb0QsRUFBQTtFUWlOeEQ7SUFJSSxrQlJyTm9ELEVBQUE7RVFpTnhEO0lBSUksZVJyTm9ELEVBQUEsRVFrUHZEOztBQzdKRDtFRDRIQTtJQUlJLGVSck5vRCxFQUFBO0VRaU54RDtJQUlJLGVSck5vRCxFQUFBO0VRaU54RDtJQUlJLGlCUnJOb0QsRUFBQTtFUWlOeEQ7SUFJSSxtQlJyTm9ELEVBQUE7RVFpTnhEO0lBSUksZVJyTm9ELEVBQUE7RVFpTnhEO0lBSUksbUJSck5vRCxFQUFBLEVRa1B2RDs7QWJ0UlA7RWE2UkUsb0JBQW9CO0VBQ3BCLGNYM1FTO0VXNFFULHFCWHhIeUI7RVcwSHpCLGVBQWUsRUFBQTtFQUxqQjtJQVNJLGNYL0gyRCxFQUFBO0VXc0gvRDtJQWdCSSxTQUFTLEVBQUE7O0FiL1RiO0VhcVVFLFdBQVc7RUFFWCxvQlJoUjREO0VRaVI1RCxTQUFTO0VBQ1Qsb0JYM0l5QjtFVzZJekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ1hqU2tDO0VXa1NsQyxjQUFjLEVBQUE7O0FBSWhCOzs7RUFHRSxtQlhySzBCO0VXc0sxQiw0QlhwSnlCO0VXcUp6QixnQlh4S3NCLEVBQUE7O0FXNEt4QjtFQUNFLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG9CWDlKc0I7RVcrSnRCLHFCWGpLa0IsRUFBQTs7QVdxS3BCO0VBQ0Usb0JYcEtzQixFQUFBOztBV3dLeEI7RUFFSSxvQlh6SzJCO0VXMEszQixnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxtQlgvS3lCLEVBQUE7RVc4SzNCO0lBSUkscUJYaEw4QjtJV2lMOUIsaUJYelJtQixFQUFBOztBVzhSdkI7RUFDRSxnQlg5TTBCO0VXK00xQixzQ1J4VTREO0VReVU1RCwrQlgxVlMsRUFBQTtFV3VWWDtJQU1JLGdCWHBOb0I7SVdxTnBCLGNYdlY4QixFQUFBOztBV3FXbEM7RUFDRSxpQ1hyV1c7RVdzV1gsWUFBWTtFQUNaLHFCQUFxQixFQUFBOztBQUl2QjtFQUNFLFNB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QU5pRnBEO0VNL0VOLGtCQUFrQjtFQUNsQixlQUgwRCxFQUFBOztBTjJGdEQ7RU0zRE4sZUYrRWtFLEVBQUE7O0FKM0M5RDtFR3hGSixnQkNtSWtFLEVBQUE7O0FKcEMxRDtFTXpFTixrQkFBa0I7RUFDbEIsZUFIMEQsRUFBQTs7QU5pRnBEO0VNL0VOLGtCQUFrQjtFQUNsQixnQkFIMEQsRUFBQTs7QU4yRnREO0VNM0ROLHFCRitFa0UsRUFBQTs7QUozQzlEO0VHeEZKLFVDbUlrRSxFQUFBOztBSnBDMUQ7RU16RU4sa0JBQWtCO0VBQ2xCLFNBSDBELEVBQUE7O0FOaUZwRDtFTS9FTixrQkFBa0I7RUFDbEIsVUFIMEQsRUFBQTs7QU4yRnREO0VNM0ROLHNCRitFa0UsRUFBQTs7QUozQzlEO0VHeEZKLGdCQ21Ja0UsRUFBQTs7QUpwQzFEO0VNekVOLGtCQUFrQjtFQUNsQixlQUgwRCxFQUFBOztBTmlGcEQ7RU0vRU4sa0JBQWtCO0VBQ2xCLGdCQUgwRCxFQUFBOztBTjJGdEQ7RU0zRE4sZ0JGK0VrRSxFQUFBOztBSjNDOUQ7RUd4RkosZ0JDbUlrRSxFQUFBOztBSnBDMUQ7RU16RU4sa0JBQWtCO0VBQ2xCLGVBSDBELEVBQUE7O0FOaUZwRDtFTS9FTixrQkFBa0I7RUFDbEIsZ0JBSDBELEVBQUE7O0FOMkZ0RDtFTTNETixzQkYrRWtFLEVBQUE7O0FKM0M5RDtFR3hGSixVQ21Ja0UsRUFBQTs7QUpwQzFEO0VNekVOLGtCQUFrQjtFQUNsQixTQUgwRCxFQUFBOztBTmlGcEQ7RU0vRU4sa0JBQWtCO0VBQ2xCLFVBSDBELEVBQUE7O0FOMkZ0RDtFTTNETixzQkYrRWtFLEVBQUE7O0FKM0M5RDtFR3hGSixnQkNtSWtFLEVBQUE7O0FKcEMxRDtFTXpFTixrQkFBa0I7RUFDbEIsZUFIMEQsRUFBQTs7QU5pRnBEO0VNL0VOLGtCQUFrQjtFQUNsQixnQkFIMEQsRUFBQTs7QU4yRnREO0VNM0ROLGdCRitFa0UsRUFBQTs7QUozQzlEO0VHeEZKLGdCQ21Ja0UsRUFBQTs7QUpwQzFEO0VNekVOLGtCQUFrQjtFQUNsQixlQUgwRCxFQUFBOztBTmlGcEQ7RU0vRU4sa0JBQWtCO0VBQ2xCLGdCQUgwRCxFQUFBOztBTjJGdEQ7RU0zRE4sc0JGK0VrRSxFQUFBOztBSjNDOUQ7RUd4RkosVUNtSWtFLEVBQUE7O0FKcEMxRDtFTXpFTixrQkFBa0I7RUFDbEIsU0FIMEQsRUFBQTs7QU5pRnBEO0VNL0VOLGtCQUFrQjtFQUNsQixVQUgwRCxFQUFBOztBTjJGdEQ7RU0zRE4sc0JGK0VrRSxFQUFBOztBSjNDOUQ7RUd4RkosZ0JDbUlrRSxFQUFBOztBSnBDMUQ7RU16RU4sa0JBQWtCO0VBQ2xCLGVBSDBELEVBQUE7O0FOaUZwRDtFTS9FTixrQkFBa0I7RUFDbEIsZ0JBSDBELEVBQUE7O0FOMkZ0RDtFTTNETixnQkYrRWtFLEVBQUE7O0FKM0M5RDtFR3hGSixnQkNtSWtFLEVBQUE7O0FKcEMxRDtFTXpFTixrQkFBa0I7RUFDbEIsZUFIMEQsRUFBQTs7QU5pRnBEO0VNL0VOLGtCQUFrQjtFQUNsQixnQkFIMEQsRUFBQTs7QU4yRnREO0VNM0ROLHNCRitFa0UsRUFBQTs7QUozQzlEO0VHeEZKLFdDbUlrRSxFQUFBOztBSnBCNUQ7RU0zRE4sc0JGK0VrRSxFQUFBOztBSlo5RDtFTy9HRixXeEJ3R3VEO0V3QnZHdkQsV0FBZ0MsRUFBQTtFUDhHOUI7SU92RkEsV0FBVyxFQUFBO0VQdUZYO0lPbkZBLFdBQVcsRUFBQTtFUG1GWDtJTy9FQSxXeEJ3RXFELEVBQUE7O0FpQk9yRDtFTy9HRixXeEJ3R3VEO0V3QnZHdkQsVUFBZ0MsRUFBQTtFUDhHOUI7SU92RkEsV0FBVyxFQUFBO0VQdUZYO0lPbkZBLFdBQVcsRUFBQTtFUG1GWDtJTy9FQSxXeEJ3RXFELEVBQUE7O0FpQk9yRDtFTy9HRixXeEJ3R3VEO0V3QnZHdkQsZ0JBQWdDLEVBQUE7RVA4RzlCO0lPdkZBLFdBQVcsRUFBQTtFUHVGWDtJT25GQSxXQUFXLEVBQUE7RVBtRlg7SU8vRUEsV3hCd0VxRCxFQUFBOztBaUJPckQ7RU8vR0YsV3hCd0d1RDtFd0J2R3ZELFVBQWdDLEVBQUE7RVA4RzlCO0lPdkZBLFdBQVcsRUFBQTtFUHVGWDtJT25GQSxXQUFXLEVBQUE7RVBtRlg7SU8vRUEsV3hCd0VxRCxFQUFBOztBaUJPckQ7RU8vR0YsV3hCd0d1RDtFd0J2R3ZELFVBQWdDLEVBQUE7RVA4RzlCO0lPdkZBLFdBQVcsRUFBQTtFUHVGWDtJT25GQSxXQUFXLEVBQUE7RVBtRlg7SU8vRUEsV3hCd0VxRCxFQUFBOztBaUJPckQ7RU8vR0YsV3hCd0d1RDtFd0J2R3ZELGdCQUFnQyxFQUFBO0VQOEc5QjtJT3ZGQSxXQUFXLEVBQUE7RVB1Rlg7SU9uRkEsV0FBVyxFQUFBO0VQbUZYO0lPL0VBLFd4QndFcUQsRUFBQTs7QWlCT3JEO0VPL0dGLFd4QndHdUQ7RXdCdkd2RCxnQkFBZ0MsRUFBQTtFUDhHOUI7SU92RkEsV0FBVyxFQUFBO0VQdUZYO0lPbkZBLFdBQVcsRUFBQTtFUG1GWDtJTy9FQSxXeEJ3RXFELEVBQUE7O0FpQk9yRDtFTy9HRixXeEJ3R3VEO0V3QnZHdkQsWUFBZ0MsRUFBQTtFUDhHOUI7SU92RkEsV0FBVyxFQUFBO0VQdUZYO0lPbkZBLFdBQVcsRUFBQTtFUG1GWDtJTy9FQSxXeEJ3RXFELEVBQUE7O0FpQmF2RDtFRXJIQSxnQmY2RVM7RWU1RVQsZWY0RVMsRUFBQTs7QWF3Q1Q7RUFJSSxlQUFlO0VBQ2YsY0FBYyxFQUFBOztBQUlsQjtFQUNFLGVBQWU7RUFDZixjQUFjLEVBQUE7O0FBR2hCO0VFbklBLHdCQUZ1QztFQUd2Qyx1QkFIdUMsRUFBQTs7QUYySXJDO0VNakhGLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBQTtFQUxqQjtJQUNFLFdBQVc7SUFDWCxXQUFXLEVBQUE7O0FOK0hYO0VNakhKLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsY0FBYyxFQUFBO0VBekNaO0lBQ0UsV3ZCMEdxRDtJdUJ6R3JELFdBQVcsRUFBQTtFQUtYO0lBQ0UsWXZCb0dvRCxFQUFBOztBYW9EcEQ7RUk3RUY7SUd4RkosZUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixjQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZUYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4scUJGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixVQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZ0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosVUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLGdCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLFVDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixnQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixXQ21Ja0UsRUFBQTtFSnBCNUQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKWjlEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxXQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFVBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsZ0JBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsVUFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxVQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELGdCQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELGdCQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFlBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQmF2RDtJRXJIQSxnQmY2RVM7SWU1RVQsZWY0RVMsRUFBQTtFYXdDVDtJQUlJLGVBQWU7SUFDZixjQUFjLEVBQUE7RUFJbEI7SUFDRSxlQUFlO0lBQ2YsY0FBYyxFQUFBO0VBR2hCO0lFbklBLHdCQUZ1QztJQUd2Qyx1QkFIdUMsRUFBQTtFRjJJckM7SU1qSEYsa0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFBO0lBTGpCO01BQ0UsV0FBVztNQUNYLFdBQVcsRUFBQTtFTitIWDtJTWpISixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGNBQWMsRUFBQTtJQXpDWjtNQUNFLFd2QjBHcUQ7TXVCekdyRCxXQUFXLEVBQUE7SUFLWDtNQUNFLFl2Qm9Hb0QsRUFBQSxFdUJuR3JEOztBVnVKQztFSTdFRjtJR3hGSixlQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGNBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixlRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixxQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLFVDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixnQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixVQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZ0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosVUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLGdCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLFdDbUlrRSxFQUFBO0VKcEI1RDtJTTNETixzQkYrRWtFLEVBQUE7RUpaOUQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFdBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsVUFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxnQkFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxVQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFVBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsZ0JBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsZ0JBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsWUFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCYXZEO0lFckhBLGdCZjZFUztJZTVFVCxlZjRFUyxFQUFBO0Vhd0NUO0lBSUksZUFBZTtJQUNmLGNBQWMsRUFBQTtFQUlsQjtJQUNFLGVBQWU7SUFDZixjQUFjLEVBQUE7RUFHaEI7SUVuSUEsd0JBRnVDO0lBR3ZDLHVCQUh1QyxFQUFBO0VGMklyQztJTWpIRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUE7SUFMakI7TUFDRSxXQUFXO01BQ1gsV0FBVyxFQUFBO0VOK0hYO0lNakhKLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsY0FBYyxFQUFBO0lBekNaO01BQ0UsV3ZCMEdxRDtNdUJ6R3JELFdBQVcsRUFBQTtJQUtYO01BQ0UsWXZCb0dvRCxFQUFBLEV1Qm5HckQ7O0FWNEpDO0VJbEZGO0lHeEZKLGVDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsY0FIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU4yRnREO0lNM0ROLGVGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLHFCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosVUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLGdCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLFVDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixnQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixVQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZ0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosV0NtSWtFLEVBQUE7RUpwQjVEO0lNM0ROLHNCRitFa0UsRUFBQTtFSlo5RDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsV0FBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxVQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELGdCQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFVBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsVUFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxnQkFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxnQkFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxZQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJhdkQ7SUVySEEsZ0JmNkVTO0llNUVULGVmNEVTLEVBQUE7RWF3Q1Q7SUFJSSxlQUFlO0lBQ2YsY0FBYyxFQUFBO0VBSWxCO0lBQ0UsZUFBZTtJQUNmLGNBQWMsRUFBQTtFQUdoQjtJRW5JQSx3QkFGdUM7SUFHdkMsdUJBSHVDLEVBQUE7RUYySXJDO0lNakhGLGtCQUFrQjtJQUNsQixpQkFBaUIsRUFBQTtJQUxqQjtNQUNFLFdBQVc7TUFDWCxXQUFXLEVBQUE7RU4rSFg7SU1qSEosZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixjQUFjLEVBQUE7SUF6Q1o7TUFDRSxXdkIwR3FEO011QnpHckQsV0FBVyxFQUFBO0lBS1g7TUFDRSxZdkJvR29ELEVBQUEsRXVCbkdyRDs7QVY0SkM7RUlsRkY7SUd4RkosZUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixjQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZUYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4scUJGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixVQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sZ0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosVUNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixnQkNtSWtFLEVBQUE7RUpwQzFEO0lNekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VOaUZwRDtJTS9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RU4yRnREO0lNM0ROLGdCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixzQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLFVDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RU4yRnREO0lNM0ROLHNCRitFa0UsRUFBQTtFSjNDOUQ7SUd4RkosZ0JDbUlrRSxFQUFBO0VKcEMxRDtJTXpFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFTmlGcEQ7SU0vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VOMkZ0RDtJTTNETixnQkYrRWtFLEVBQUE7RUozQzlEO0lHeEZKLGdCQ21Ja0UsRUFBQTtFSnBDMUQ7SU16RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RU5pRnBEO0lNL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFTjJGdEQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKM0M5RDtJR3hGSixXQ21Ja0UsRUFBQTtFSnBCNUQ7SU0zRE4sc0JGK0VrRSxFQUFBO0VKWjlEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxXQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELFVBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsZ0JBQWdDLEVBQUE7SVA4RzlCO01PdkZBLFdBQVcsRUFBQTtJUHVGWDtNT25GQSxXQUFXLEVBQUE7SVBtRlg7TU8vRUEsV3hCd0VxRCxFQUFBO0VpQk9yRDtJTy9HRixXeEJ3R3VEO0l3QnZHdkQsVUFBZ0MsRUFBQTtJUDhHOUI7TU92RkEsV0FBVyxFQUFBO0lQdUZYO01PbkZBLFdBQVcsRUFBQTtJUG1GWDtNTy9FQSxXeEJ3RXFELEVBQUE7RWlCT3JEO0lPL0dGLFd4QndHdUQ7SXdCdkd2RCxVQUFnQyxFQUFBO0lQOEc5QjtNT3ZGQSxXQUFXLEVBQUE7SVB1Rlg7TU9uRkEsV0FBVyxFQUFBO0lQbUZYO01PL0VBLFd4QndFcUQsRUFBQTtFaUJPckQ7SU8vR0YsV3hCd0d1RDtJd0J2R3ZELGdCQUFnQyxFQUFBO0lQ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ZSxFQUFBO0UvQjI0RWY7SU1ueUVFLFVBQVUsRUFBQTtFeUJ0R1o7SUFFRSxjMUJqQlcsRUFBQTtFMEJzQmI7SUF4QkEsYzFCMlRjO0kwQjFUZCxXMUI4VGE7STBCN1RiLGdCMUJpVVk7STBCaFVaLGMxQm1Vd0IsRUFBQTtFMEI5U3hCO0lBeEJBLFcxQjRUWTtJMEIzVFosVzFCK1RjO0kwQjlUZCxjMUJrVVc7STBCalVYLGMxQm1Vd0IsRUFBQTs7QTJCdld4QjtFQVpBLHFCQUFxQjtFQUNyQiwwQjNCMmQrQjtFMkJ6ZC9CLGdCM0I4RmU7RTJCNUZmLGlCM0JzZHNCO0UyQnJkdEIsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixlQUFlO0VBT2IsbUIzQndCUztFMkJ2QlQsYzNCZ0NXLEVBQUE7RTJCcENiO0lBUU0sbUIzQm1CSztJMkJsQkwsYzNCMEJPLEVBQUE7RTJCbkNiO0lBUU0sbUIzQm9CSztJMkJuQkwsYzNCMkJPLEVBQUE7RTJCcENiO0lBUU0sbUIzQmtDVTtJMkJqQ1YsYzNCMEJPLEVBQUE7RTJCbkNiO0lBUU0sbUIzQm1DVTtJMkJsQ1YsYzNCMEJPLEVBQUE7RTJCbkNiO0lBUU0sbUIzQm9DUTtJMkJuQ1IsYzNCMEJPLEVBQUE7RTJCbkNiO0lBUU0sbUIzQndCWTtJMkJ2QlosYzNCMEJPLEVBQUE7RTJCbkNiO0lBUU0sbUIzQnlCOEI7STJCeEI5QixjM0IwQk8sRUFBQTtFMkJuQ2I7SUFRTSxtQjNCMEI0QjtJMkJ6QjVCLGMzQjJCTyxFQUFBO0UyQnBDYjtJQVFNLG1CM0IyQk87STJCMUJQLGMzQjJCTyxFQUFBO0UyQnBDYjtJQVFNLG1CM0I0Qk87STJCM0JQLGMzQjBCTyxFQUFBOztBNEI1Q2I7RUFuQ0EsWTVCMGxCb0I7RTRCemxCcEIscUI1QjJIb0I7RTRCMUhwQixnQjVCK0hlO0U0QjlIZix5QjVCMEVvQyxFQUFBO0U0QjFDcEM7SUFNUSx5QjVCOEJHLEVBQUE7RTRCcENYO0lBTVEseUI1QitCRyxFQUFBO0U0QnJDWDtJQU1RLHlCNUI2Q1EsRUFBQTtFNEJuRGhCO0lBTVEseUI1QjhDUSxF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L0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO0VDL0JoQixnQkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO0VDL0JoQixnQkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QW5Dc0VWO0VtQ3JFRjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUEsRUFHWDs7QW5DbUVDO0VtQ3JFRjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUEsRUFHWDs7QW5Dd0VDO0VtQzFFRjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUEsRUFHWDs7QW5Dd0VDO0VtQzFFRjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIs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QnpCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixVRmhDa0M7RUlFbEMsb0NBQTRCO0VBQTVCLDRCQUE0QixFQUFBOztBTFU1QjtFR29CQSxVRmhDcUMsRUFBQTs7QURBckM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLFVGL0JrQztFSUNsQyxvQ0FBNEI7RUFBNUIsNEJBQTRCLEVBQUE7O0FMVTVCO0VHb0JBLFVGL0JxQyxFQUFBOztBRERyQztFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsc0RHckNtQztVSHFDbkMsOENHckNtQztFSHFDbkMsNkJGNUJtRDtNRTRCbkQseUJGNUJtRDtVRTRCbkQscUJGNUJtRDtFTUlqRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLHNER3BDcUM7VUhvQ3JDLDhDR3BDcUM7RUhvQ3JDLCtCRjNCcUQ7TUUyQnJELDJCRjNCcUQ7VUUyQnJELHVCRjNCcUQ7RU1HbkQsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FQRzdCO0VHb0JBLG1ER1Q0QztVSFM1QywyQ0dUNEM7RUNKMUMsVUFBMkIsRUFBQTs7QVBuQjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixxREduQ2lDO1VIbUNqQyw2Q0duQ2lDO0VIbUNqQyxnQ0YxQnNEO01FMEJ0RCw0QkYxQnNEO1VFMEJ0RCx3QkYxQnNEO0VNRXBELHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUEc3QjtFR29CQSxtREdUNEM7VUhTNUMsMkNHVDRDO0VDSjFDLFVBQTJCLEVBQUE7O0FQbkI3QjtFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIscURHbEMrQjtVSGtDL0IsNkNHbEMrQjtFSGtDL0IsOEJGekJvRDtNRXlCcEQsMEJGekJvRDtVRXlCcEQsc0JGekJvRDtFTUNsRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLHNER3JDbUM7VUhxQ25DLDhDR3JDbUM7RUhxQ25DLGdDR0VlO01IRmYsNEJHRWU7VUhGZix3QkdFZTtFQzFCYix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLHNER3BDcUM7VUhvQ3JDLDhDR3BDcUM7RUhvQ3JDLGdDR0VlO01IRmYsNEJHRWU7VUhGZix3QkdFZTtFQzFCYix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsNkJGdEJtRDtNRXNCbkQseUJGdEJtRDtVRXNCbkQscUJGdEJtRDtFTUZqRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEscURHL0I4QjtVSCtCOUIsNkNHL0I4QjtFQ2tCNUIsVUFBOEIsRUFBQTs7QVBuQmhDO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixtREdQOEM7VUhPOUMsMkNHUDhDO0VITzlDLCtCRnJCcUQ7TUVxQnJELDJCRnJCcUQ7VUVxQnJELHVCRnJCcUQ7RU1IbkQsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FQR2hDO0VHb0JBLHFERzlCZ0M7VUg4QmhDLDZDRzlCZ0M7RUNpQjlCLFVBQThCLEVBQUE7O0FQbkJoQztFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsbURHUDhDO1VITzlDLDJDR1A4QztFSE85QyxnQ0ZwQnNEO01Fb0J0RCw0QkZwQnNEO1VFb0J0RCx3QkZwQnNEO0VNSnBELHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSxzREc3QnNDO1VINkJ0Qyw4Q0c3QnNDO0VDZ0JwQyxVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsOEJGbkJvRDtNRW1CcEQsMEJGbkJvRDtVRW1CcEQsc0JGbkJvRDtFTUxsRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEsc0RHNUJvQztVSDRCcEMsOENHNUJvQztFQ2VsQyxVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsZ0NHRWU7TUhGZiw0QkdFZTtVSEZmLHdCR0VlO0VDMUJiLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSxxREcvQjhCO1VIK0I5Qiw2Q0cvQjhCO0VDa0I1QixVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsZ0NHRWU7TUhGZiw0QkdFZTtVSEZmLHdCR0VlO0VDMUJiLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSxxREc5QmdDO1VIOEJoQyw2Q0c5QmdDO0VDaUI5QixVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLDZCQUZ5QjtNQUV6Qix5QkFGeUI7VUFFekIscUJBRnlCO0VLekJ2Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVJNN0I7RUdvQkEsMkJBRnlCO01BRXpCLHVCQUZ5QjtVQUV6QixtQkFGeUI7RUtkdkIsVUFBMkIsRUFBQTs7QVJoQjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYiw2QkFGeUI7TUFFekIseUJBRnlCO1VBRXpCLHFCQUZ5QjtFS3pCdkIsdURBQXVDO0VBQXZDLCtD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RUFBQTtFd0IrUFg7SXdEcFVVLHlCaEZzRUMsRUFBQTtFd0I4UFg7SXdEcFVVLHlCaEZvRk0sRUFBQTtFd0JnUGhCO0l3RHBVVSx5QmhGcUZNLEVBQUE7RXdCK09oQjtJd0RwVVUseUJoRnNGSSxFQUFBO0V3QjhPZDtJd0RwVVUseUJoRjBFUSxFQUFBO0V3QjBQbEI7SXdEcFVVLHlCaEYyRTBCLEVBQUE7RXdCeVBwQztJd0RwVVUseUJoRjRFd0IsRUFBQTtFd0J3UGxDO0l3RHBVVSx5QmhGNkVHLEVBQUE7RXdCdVBiO0l3RHBVVSx5QmhGOEVHLEVBQUE7RXdCc1BiO0l3RC9UTSw2QkFBNkIsRUFBQTtJQWJyQztNQWlCZ0IsbUJoRjhESDtNZ0Y3REcscUJoRjZESDtNZ0Y1REcsY2hGbUVELEVBQUE7TWdGdEZmO1FBeUJ3QixxQmhGb0RYO1FnRm5EVyxtQmhGbURYLEVBQUE7TWdGN0ViO1FBeUJ3QixxQmhGcURYO1FnRnBEVyxtQmhGb0RYLEVBQUE7TWdGOUViO1FBeUJ3QixxQmhGbUVOO1FnRmxFTSxtQmhGa0VOLEVBQUE7TWdGNUZsQjtRQXlCd0IscUJoRm9FTjtRZ0ZuRU0sbUJoRm1FTixFQUFBO01nRjdGbEI7UUF5QndCLHFCaEZxRVI7UWdGcEVRLG1CaEZvRVIsRUFBQTtNZ0Y5RmhCO1FBeUJ3QixxQmhGeURKO1FnRnhESSxtQmhGd0RKLEVBQUE7TWdGbEZwQjtRQXlCd0IscUJoRjBEYztRZ0Z6RGQsbUJoRnlEYyxFQUFBO01nRm5GdEM7UUF5QndCLHFCaEYyRFk7UWdGMURaLG1CaEYwRFksRUFBQTtNZ0ZwRnBDO1FBeUJ3QixxQmhGNERUO1FnRjNEUyxtQmhGMkRULEVBQUE7TWdGckZmO1FBeUJ3QixxQmhGNkRUO1FnRjVEUyxtQmhGNERULEVBQUE7O0FpRm5GZjtFQUNJLHNCQUFzQjtFQUN0QixpSEFDeUQ7RUFDekQsbUJBQW1CO0VBQ25CLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLHNCQUFzQjtFQUN0QixpSEFDeUQ7RUFDekQsaUJBQWlCO0VBQ2pCLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJ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O0lBeUJFLGN0SGdEVztJc0gvQ1gsa0JBQWtCLEVBQUE7RUExQnBCO0lBK0JFLGtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBQTtJQWhDbEI7TUFtQ0csYUFBYTtNQUNiLGdCQUFnQjtNQUVoQixvQkFBWTtNQUFaLFlBQVksRUFBQTtNQXRDZjtRQXlDSSx3QkFBZ0I7UUFBaEIsZ0JBQWdCLEVBQUE7RUF6Q3BCO0lBZ0RFLFNBQVM7SUFDVCxVQUFVLEVBQUE7SUFqRFo7TUFvREcsaUJBQWlCO01BQ2pCLHFCQUFxQjtNQUNyQixrQkFBa0IsRUFBQTtFQXREckI7SUEyREUsaUJBQWlCO0lBQ2pCLGN0SGFXO0lzSFpYLGtCQUFrQjtJQUNsQixjQUFjLEVBQUE7RUE5RGhCO0lBd0VFLGNBQWM7SUFDZCxnQkFBZ0IsRUFBQTtJQXpFbEI7TUE0RUcscUJBQXFCO01BQ3JCLFdBQVc7TUFDWCxZQUFZO01BRVosYXRIQWlDO004RnpCaEMsd0N3QjJCZ0M7TXhCM0JoQyxnQ3dCMkJnQztNeEJ4QmhDLG1DQUFtQyxFQUFBO0l3QjFEdkM7TUFzRkcscUJBQXFCO01BQ3JCLGVBQWU7TUFFZixrQkFBa0IsRUFBQTtNQXpGckI7UUE0RkksZUFBZSxFQUFBO01BNUZuQjtRQWlHSyxhdEh4QlEsRUFBQTs7QXVIdkViO0VBQ0Msa0JBQWtCLEVBQUEiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIVxuVGhlbWUgTmFtZTogQ3VzdG9tIFRoZW1lXG5UaGVtZSBVUkk6IGh0dHBzOi8vd3d3LnZpdmlkY3JlYXRpdmUuY29tXG5BdXRob3I6IFZpdmlkIENyZWF0aXZlXG5BdXRob3IgVVJJOiBodHRwczovL3d3dy52aXZpZGNyZWF0aXZlLmNvbVxuRGVzY3JpcHRpb246IEN1c3RvbSBUaGVtZSBmb3IgQ2xpZW50XG5WZXJzaW9uOiAxLjAuMFxuVGV4dCBEb21haW46IGN1c3RvbXRoZW1lXG5UYWdzOiBjdXN0b20tdGhlbWVcbiovXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNy40XG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IH1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbmJ1dHRvbiwgLmJ1dHRvbiwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDA7IH1cblxuYnV0dG9uLCAuYnV0dG9uLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5idXR0b24sIC5idXR0b24sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG5idXR0b24sIC5idXR0b24sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgLmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZywgLmJ1dHRvbjotbW96LWZvY3VzcmluZywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTotbW96LWZvY3VzcmluZywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtOyB9XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwOyB9XG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0OyB9XG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdICosIFtkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdICosXG5bZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICosXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gKixcbltkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICo6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbltkcmFnZ2FibGU9ZmFsc2VdIHtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT02Mi41ZW0mbGFyZ2U9NzVlbSZ4bGFyZ2U9OTBlbSZ4eGxhcmdlPTEwNWVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBCcmFuZG9uLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiwgLmJ1dHRvbiwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24sIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYSwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBhIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuYnV0dG9uLCAuYnV0dG9uLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWMxZDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1NDU0NzE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjMWMxZDA7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJGQkZDO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2MxYzFkMDsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBwYWRkaW5nOiAwLjU2MjVyZW0gMDsgfVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCwgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQsIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5pbnB1dC1ncm91cC1idXR0b24gYSwgLmlucHV0LWdyb3VwLWJ1dHRvbiBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxYzFkMDtcbiAgYmFja2dyb3VuZDogI0ZCRkJGQztcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG4uZmllbGRzZXQge1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWMxZDA7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMC4xODc1cmVtOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWMxZDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDMyIDI0XCI+PHBvbHlnb24gcG9pbnRzPVwiMCwwIDMyLDAgMTYsMjRcIiBzdHlsZT1cImZpbGw6IHJnYiUyODg0LCA4NCwgMTEzJTI5XCI+PC9wb2x5Z29uPjwvc3ZnPicpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNTQ1NDcxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjYzFjMWQwO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkJGQztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICBzZWxlY3Q6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZWNlYTsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2NjNGIzNzsgfVxuICAuZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyxcbmg0LCAuaDQsIC5hcmNoaXZlX2ZpbHRlciBsYWJlbCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IEJyYW5kb24sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCwgLmgxIHNtYWxsLFxuICBoMiBzbWFsbCwgLmgyIHNtYWxsLFxuICBoMyBzbWFsbCwgLmgzIHNtYWxsLFxuICBoNCBzbWFsbCwgLmg0IHNtYWxsLCAuYXJjaGl2ZV9maWx0ZXIgbGFiZWwgc21hbGwsXG4gIGg1IHNtYWxsLCAuaDUgc21hbGwsXG4gIGg2IHNtYWxsLCAuaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjYzFjMWQwOyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDQsIC5oNCwgLmFyY2hpdmVfZmlsdGVyIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBoMywgLmgzIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBoNCwgLmg0LCAuYXJjaGl2ZV9maWx0ZXIgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDRyZW07IH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAycmVtOyB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gIGg0LCAuaDQsIC5hcmNoaXZlX2ZpbHRlciBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgaDYsIC5oNiB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICNGQTY0MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjZDc1NjAwOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3MC42MjVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMWMxZDA7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNGQTY0MDA7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjNTQ1NDcxOyB9XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAwMDAwO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7XG4gIGZvbnQtZmFtaWx5OiBCcmFuZG9uLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzU0NTQ3MTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuY2l0ZSwgLmNpdGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICM1NDU0NzE7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtOyB9XG4gIGNpdGU6YmVmb3JlLCAuY2l0ZS1ibG9jazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmNvZGUsIC5jb2RlLWlubGluZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWMxZDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7XG4gIGZvbnQtZmFtaWx5OiBCcmFuZG9uLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07IH1cblxuLmNvZGUtYmxvY2sge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzFjMWQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJGQkZDO1xuICBmb250LWZhbWlseTogQnJhbmRvbiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnhsYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAueGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAueHhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnh4bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAueHhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNTQ1NDcxO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cbi5yb3cge1xuICBtYXgtd2lkdGg6IDcwLjYyNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA1ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIC5yb3cgLnJvdy5jb2xsYXBzZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAucm93LmV4cGFuZGVkIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICAucm93LmV4cGFuZGVkIC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnJvdzpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLnJvdy5ndXR0ZXItc21hbGwgPiAuY29sdW1uLCAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbiwgLmNvbHVtbnMsIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLmNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmNvbHVtbi5lbmQ6bGFzdC1jaGlsZDpsYXN0LWNoaWxkLCAuZW5kLmNvbHVtbnM6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTsgfVxuXG4ucm93IC5jb2x1bW4ucm93LnJvdywgLnJvdyAucm93LnJvdy5jb2x1bW5zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC0xIHtcbiAgd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7IH1cblxuLnNtYWxsLTIge1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtMyB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXB1c2gtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMjUlOyB9XG5cbi5zbWFsbC1wdWxsLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0yNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0zMy4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtNSB7XG4gIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtNiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXB1c2gtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlOyB9XG5cbi5zbWFsbC1wdWxsLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01OC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC02Ni42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtOSB7XG4gIHdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLXB1c2gtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNzUlOyB9XG5cbi5zbWFsbC1wdWxsLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC03NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04My4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC05MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjUlOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjAlOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTIuNSU7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLWNvbGxhcHNlIC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5leHBhbmRlZC5yb3cgLnNtYWxsLWNvbGxhcHNlLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG4uc21hbGwtY2VudGVyZWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5zbWFsbC1jZW50ZXJlZCwgLnNtYWxsLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5zbWFsbC11bmNlbnRlcmVkLCAuc21hbGwtcHVzaC0wLCAuc21hbGwtcHVsbC0wIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc21hbGwtdW5jZW50ZXJlZCwgLnNtYWxsLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnNtYWxsLXB1c2gtMCwgLnNtYWxsLXB1c2gtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuc21hbGwtcHVsbC0wLCAuc21hbGwtcHVsbC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11bmNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5zbWFsbC1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnNtYWxsLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubWVkaXVtLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLm1lZGl1bS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLm1lZGl1bS1jZW50ZXJlZCwgLm1lZGl1bS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1lZGl1bS11bmNlbnRlcmVkLCAubWVkaXVtLXB1c2gtMCwgLm1lZGl1bS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1lZGl1bS11bmNlbnRlcmVkLCAubWVkaXVtLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLm1lZGl1bS1wdXNoLTAsIC5tZWRpdW0tcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5tZWRpdW0tcHVsbC0wLCAubWVkaXVtLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLm1lZGl1bS1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLm1lZGl1bS1wdWxsLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubGFyZ2UtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLmxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLmxhcmdlLWNlbnRlcmVkLCAubGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLCAubGFyZ2UtcHVzaC0wLCAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5sYXJnZS11bmNlbnRlcmVkLCAubGFyZ2UtdW5jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubGFyZ2UtcHVzaC0wLCAubGFyZ2UtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5sYXJnZS1wdWxsLTAsIC5sYXJnZS1wdWxsLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmxhcmdlLXB1c2gtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubGFyZ2UtcHVsbC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAueGxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAueGxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAueGxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAueGxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnhsYXJnZS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLnhsYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC54bGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAueGxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAueGxhcmdlLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAueGxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnhsYXJnZS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLnhsYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnhsYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC54bGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAueGxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAueGxhcmdlLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAueGxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLnhsYXJnZS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLnhsYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnhsYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAueGxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC54bGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLnhsYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC54bGFyZ2UtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLnhsYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnhsYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC54bGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLnhsYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnhsYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLnhsYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLnhsYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnhsYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLnhsYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueGxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAueGxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLnhsYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54bGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnhsYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAueGxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC54bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC54bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLnhsYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLnhsYXJnZS1jZW50ZXJlZCwgLnhsYXJnZS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLnhsYXJnZS11bmNlbnRlcmVkLCAueGxhcmdlLXB1c2gtMCwgLnhsYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLnhsYXJnZS11bmNlbnRlcmVkLCAueGxhcmdlLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnhsYXJnZS1wdXNoLTAsIC54bGFyZ2UtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC54bGFyZ2UtcHVsbC0wLCAueGxhcmdlLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueGxhcmdlLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnhsYXJnZS1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnhsYXJnZS1wdWxsLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAueHhsYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC54eGxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLnh4bGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAueHhsYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC54eGxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnh4bGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC54eGxhcmdlLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAueHhsYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAueHhsYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnh4bGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC54eGxhcmdlLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAueHhsYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAueHhsYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC54eGxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLnh4bGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC54eGxhcmdlLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAueHhsYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAueHhsYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAueHhsYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uLCAueHhsYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueHhsYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAueHhsYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueHhsYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAueHhsYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueHhsYXJnZS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueHhsYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueHhsYXJnZS11cC00ID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueHhsYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAueHhsYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueHhsYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAueHhsYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueHhsYXJnZS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueHhsYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueHhsYXJnZS11cC03ID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLXVwLTggPiAuY29sdW1uLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC54eGxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueHhsYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueHhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC54eGxhcmdlLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC54eGxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC54eGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueHhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAueHhsYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLnh4bGFyZ2UtY2VudGVyZWQsIC54eGxhcmdlLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAueHhsYXJnZS11bmNlbnRlcmVkLCAueHhsYXJnZS1wdXNoLTAsIC54eGxhcmdlLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAueHhsYXJnZS11bmNlbnRlcmVkLCAueHhsYXJnZS11bmNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC54eGxhcmdlLXB1c2gtMCwgLnh4bGFyZ2UtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC54eGxhcmdlLXB1bGwtMCwgLnh4bGFyZ2UtcHVsbC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVuY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnh4bGFyZ2UtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC54eGxhcmdlLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmJ1dHRvbiwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIHBhZGRpbmc6IDAuNWVtIDEuNWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGEsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uLnRpbnksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEudGlueSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS50aW55IHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zbWFsbCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5idXR0b24ubGFyZ2UsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGFyZ2UsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmV4cGFuZGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbiwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgLmJ1dHRvbi5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhBQkQyNDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAuYnV0dG9uOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzVhMTFmO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24ucHJpbWFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnksIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeTpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzg1MDAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnksIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc2Vjb25kYXJ5OmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc2Vjb25kYXJ5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2VzcywgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzW2Rpc2FibGVkXSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEFCRDI0O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uc3VjY2Vzczpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2ZTk3MWQ7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi53YXJuaW5nLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZywgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nW2Rpc2FibGVkXSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24ud2FybmluZzpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmc6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5hbGVydCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydCwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYWxlcnRbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5hbGVydDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydDpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydDpob3ZlciwgLmJ1dHRvbi5hbGVydDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydDpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmxpZ2h0LWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5LCAuYnV0dG9uLmxpZ2h0LWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5LmRpc2FibGVkLCAuYnV0dG9uLmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCAuYnV0dG9uLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24ubGlnaHQtZ3JheVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5saWdodC1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXk6aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpob3ZlciwgLmJ1dHRvbi5saWdodC1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXk6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzJkMTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLm1lZGl1bS1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LCAuYnV0dG9uLm1lZGl1bS1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkLCAuYnV0dG9uLm1lZGl1bS1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCAuYnV0dG9uLm1lZGl1bS1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24ubWVkaXVtLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubWVkaXVtLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24ubWVkaXVtLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxYzFkMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLm1lZGl1bS1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmhvdmVyLCAuYnV0dG9uLm1lZGl1bS1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5M2FlO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uZGFyay1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXksIC5idXR0b24uZGFyay1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQsIC5idXR0b24uZGFyay1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF0sIC5idXR0b24uZGFyay1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uZGFyay1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NzE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5kYXJrLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5OmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheTpob3ZlciwgLmJ1dHRvbi5kYXJrLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ1YTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmJsYWNrLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLCAuYnV0dG9uLmJsYWNrLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkLCAuYnV0dG9uLmJsYWNrW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFja1tkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2tbZGlzYWJsZWRdLCAuYnV0dG9uLmJsYWNrLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmJsYWNrW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFja1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uYmxhY2suZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2suZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uYmxhY2tbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmJsYWNrOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmhvdmVyLCAuYnV0dG9uLmJsYWNrOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLndoaXRlLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLCAuYnV0dG9uLndoaXRlLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkLCAuYnV0dG9uLndoaXRlW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZVtkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGVbZGlzYWJsZWRdLCAuYnV0dG9uLndoaXRlLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLndoaXRlW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24ud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24ud2hpdGVbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLndoaXRlOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlOmhvdmVyLCAuYnV0dG9uLndoaXRlOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JjYmNiO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uaG9sbG93LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3c6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3c6aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYTpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGE6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGE6Zm9jdXMsIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kaXNhYmxlZDpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kaXNhYmxlZDpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhW2Rpc2FibGVkXSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3dbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGFbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhW2Rpc2FibGVkXTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYVtkaXNhYmxlZF06Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24uaG9sbG93LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvd1tkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYVtkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93W2Rpc2FibGVkXSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYVtkaXNhYmxlZF06aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRpc2FibGVkOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGFbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOEFCRDI0O1xuICAgIGNvbG9yOiAjOEFCRDI0OyB9XG4gIC5idXR0b24uaG9sbG93OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdzpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdzpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhOmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3c6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYTpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3c6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDU1ZjEyO1xuICAgIGNvbG9yOiAjNDU1ZjEyOyB9XG4gIC5idXR0b24uaG9sbG93LnByaW1hcnksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnByaW1hcnksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5wcmltYXJ5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEucHJpbWFyeSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnByaW1hcnkuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5W2Rpc2FibGVkXSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0ZBNjQwMDtcbiAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEucHJpbWFyeTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnByaW1hcnk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5wcmltYXJ5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEucHJpbWFyeTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjN2QzMjAwO1xuICAgIGNvbG9yOiAjN2QzMjAwOyB9XG4gIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc2Vjb25kYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc2Vjb25kYXJ5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5zZWNvbmRhcnksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zZWNvbmRhcnksIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0LmRpc2FibGVkW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0W2Rpc2FibGVkXVt0eXBlPVwic3VibWl0XCJdLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0LmRpc2FibGVkOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXRbZGlzYWJsZWRdOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXQuZGlzYWJsZWQ6Zm9jdXNbdHlwZT1cInN1Ym1pdFwiXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBpbnB1dFtkaXNhYmxlZF06Zm9jdXNbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnNlY29uZGFyeTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnNlY29uZGFyeTpob3ZlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc2Vjb25kYXJ5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc2Vjb25kYXJ5OmZvY3VzLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXQ6Zm9jdXNbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3MsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnN1Y2Nlc3MsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zdWNjZXNzLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc3VjY2Vzcy5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOEFCRDI0O1xuICAgIGNvbG9yOiAjOEFCRDI0OyB9XG4gIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LnN1Y2Nlc3M6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zdWNjZXNzOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuc3VjY2Vzczpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLnN1Y2Nlc3M6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5zdWNjZXNzOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM0NTVmMTI7XG4gICAgY29sb3I6ICM0NTVmMTI7IH1cbiAgLmJ1dHRvbi5ob2xsb3cud2FybmluZywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2FybmluZywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmcsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lndhcm5pbmcsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53YXJuaW5nLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2FybmluZy5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmdbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2FybmluZy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lndhcm5pbmc6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53YXJuaW5nOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndhcm5pbmc6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53YXJuaW5nOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmFsZXJ0LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYWxlcnQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmFsZXJ0LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYWxlcnQsIC5idXR0b24uaG9sbG93LmFsZXJ0LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5hbGVydC5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmFsZXJ0LmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYWxlcnRbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYWxlcnRbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5hbGVydC5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5hbGVydFtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5hbGVydC5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5hbGVydFtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYWxlcnQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5hbGVydDpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYWxlcnQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5hbGVydDpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmFsZXJ0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgLmJ1dHRvbi5ob2xsb3cubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmxpZ2h0LWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5saWdodC1ncmF5LCAuYnV0dG9uLmhvbGxvdy5saWdodC1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5saWdodC1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5saWdodC1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubGlnaHQtZ3JheVtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5saWdodC1ncmF5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubGlnaHQtZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cubGlnaHQtZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubGlnaHQtZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5saWdodC1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRkJGQkZDO1xuICAgIGNvbG9yOiAjRkJGQkZDOyB9XG4gIC5idXR0b24uaG9sbG93LmxpZ2h0LWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmxpZ2h0LWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5saWdodC1ncmF5OmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubGlnaHQtZ3JheTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cubGlnaHQtZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubGlnaHQtZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmxpZ2h0LWdyYXk6Zm9jdXMsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5saWdodC1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM2YzZjOTA7XG4gICAgY29sb3I6ICM2YzZjOTA7IH1cbiAgLmJ1dHRvbi5ob2xsb3cubWVkaXVtLWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lm1lZGl1bS1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubWVkaXVtLWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lm1lZGl1bS1ncmF5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubWVkaXVtLWdyYXksIC5idXR0b24uaG9sbG93Lm1lZGl1bS1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5tZWRpdW0tZ3JheS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubWVkaXVtLWdyYXkuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lm1lZGl1bS1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubWVkaXVtLWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cubWVkaXVtLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93Lm1lZGl1bS1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5tZWRpdW0tZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93Lm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxYzFkMDtcbiAgICBjb2xvcjogI2MxYzFkMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5tZWRpdW0tZ3JheTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubWVkaXVtLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5tZWRpdW0tZ3JheTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLm1lZGl1bS1ncmF5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5tZWRpdW0tZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cubWVkaXVtLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5tZWRpdW0tZ3JheTpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLm1lZGl1bS1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM1NjU2NzM7XG4gICAgY29sb3I6ICM1NjU2NzM7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuZGFyay1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kYXJrLWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmRhcmstZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRhcmstZ3JheSwgLmJ1dHRvbi5ob2xsb3cuZGFyay1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kYXJrLWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmRhcmstZ3JheVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmRhcmstZ3JheVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXlbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZGFyay1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuZGFyay1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5kYXJrLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmRhcmstZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRhcmstZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5ob2xsb3cuZGFyay1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGFyay1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1NDU0NzE7XG4gICAgY29sb3I6ICM1NDU0NzE7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuZGFyay1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5kYXJrLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXk6aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kYXJrLWdyYXk6aG92ZXIsIC5idXR0b24uaG9sbG93LmRhcmstZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuZGFyay1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZGFyay1ncmF5OmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZGFyay1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMyYTJhMzg7XG4gICAgY29sb3I6ICMyYTJhMzg7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuYmxhY2ssICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmJsYWNrLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYmxhY2ssIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmJsYWNrLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYmxhY2ssIC5idXR0b24uaG9sbG93LmJsYWNrLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5ibGFjay5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmJsYWNrLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYmxhY2suZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmJsYWNrW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYmxhY2tbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYmxhY2tbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuYmxhY2tbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5ibGFjay5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYmxhY2suZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ibGFjay5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYmxhY2tbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5ibGFja1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ibGFja1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LmJsYWNrLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5ibGFjay5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmJsYWNrLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5ibGFja1tkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmJsYWNrW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmJsYWNrW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5ibGFjazpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYmxhY2s6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ibGFjazpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmJsYWNrOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5ibGFjazpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuYmxhY2s6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ibGFjazpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmJsYWNrOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGJsYWNrO1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAuYnV0dG9uLmhvbGxvdy53aGl0ZSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2hpdGUsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53aGl0ZSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2hpdGUsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53aGl0ZSwgLmJ1dHRvbi5ob2xsb3cud2hpdGUuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LndoaXRlLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2hpdGUuZGlzYWJsZWQsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53aGl0ZS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2hpdGVbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53aGl0ZVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53aGl0ZVtkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS53aGl0ZVtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LndoaXRlLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53aGl0ZS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53aGl0ZVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LndoaXRlW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndoaXRlW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LndoaXRlLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LndoaXRlW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cud2hpdGVbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2hpdGVbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVmZWZlO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uaG9sbG93LndoaXRlOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53aGl0ZTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndoaXRlOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2hpdGU6aG92ZXIsIC5idXR0b24uaG9sbG93LndoaXRlOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy53aGl0ZTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLndoaXRlOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEud2hpdGU6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzdmN2Y3ZjtcbiAgICBjb2xvcjogIzdmN2Y3ZjsgfVxuICAuYnV0dG9uLmNsZWFyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyOmhvdmVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcltkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLmNsZWFyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcltkaXNhYmxlZF0sIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICM4QUJEMjQ7IH1cbiAgLmJ1dHRvbi5jbGVhcjpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcjpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcjpmb2N1cywgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhcjpmb2N1cyB7XG4gICAgY29sb3I6ICM0NTVmMTI7IH1cbiAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnByaW1hcnksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIucHJpbWFyeSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5wcmltYXJ5OmZvY3VzIHtcbiAgICBjb2xvcjogIzdkMzIwMDsgfVxuICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC5idXR0b24uY2xlYXIuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zdWNjZXNzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnN1Y2Nlc3MsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjOEFCRDI0OyB9XG4gIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuc3VjY2Vzczpmb2N1cyB7XG4gICAgY29sb3I6ICM0NTVmMTI7IH1cbiAgLmJ1dHRvbi5jbGVhci53YXJuaW5nLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndhcm5pbmcsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIud2FybmluZywgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAuYnV0dG9uLmNsZWFyLmFsZXJ0LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0LCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmFsZXJ0OmZvY3VzIHtcbiAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLmNsZWFyLmxpZ2h0LWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubGlnaHQtZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5saWdodC1ncmF5LCAuYnV0dG9uLmNsZWFyLmxpZ2h0LWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubGlnaHQtZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5saWdodC1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5saWdodC1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5saWdodC1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIubGlnaHQtZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubGlnaHQtZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIubGlnaHQtZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5saWdodC1ncmF5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogI0ZCRkJGQzsgfVxuICAuYnV0dG9uLmNsZWFyLmxpZ2h0LWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubGlnaHQtZ3JheTpob3ZlciwgLmJ1dHRvbi5jbGVhci5saWdodC1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmxpZ2h0LWdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiAjNmM2YzkwOyB9XG4gIC5idXR0b24uY2xlYXIubWVkaXVtLWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXksIC5idXR0b24uY2xlYXIubWVkaXVtLWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLm1lZGl1bS1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLm1lZGl1bS1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLm1lZGl1bS1ncmF5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjYzFjMWQwOyB9XG4gIC5idXR0b24uY2xlYXIubWVkaXVtLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXk6aG92ZXIsIC5idXR0b24uY2xlYXIubWVkaXVtLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIubWVkaXVtLWdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiAjNTY1NjczOyB9XG4gIC5idXR0b24uY2xlYXIuZGFyay1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5kYXJrLWdyYXksIC5idXR0b24uY2xlYXIuZGFyay1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5kYXJrLWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuZGFyay1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5kYXJrLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuZGFyay1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5kYXJrLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjNTQ1NDcxOyB9XG4gIC5idXR0b24uY2xlYXIuZGFyay1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmRhcmstZ3JheTpob3ZlciwgLmJ1dHRvbi5jbGVhci5kYXJrLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuZGFyay1ncmF5OmZvY3VzIHtcbiAgICBjb2xvcjogIzJhMmEzODsgfVxuICAuYnV0dG9uLmNsZWFyLmJsYWNrLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrLCAuYnV0dG9uLmNsZWFyLmJsYWNrLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmJsYWNrW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5ibGFja1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYmxhY2suZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuYmxhY2suZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYmxhY2tbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5ibGFjay5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci5ibGFjay5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5ibGFja1tkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIuYmxhY2tbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmNsZWFyLmJsYWNrOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmJsYWNrOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLmJsYWNrOmZvY3VzIHtcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgLmJ1dHRvbi5jbGVhci53aGl0ZSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZSwgLmJ1dHRvbi5jbGVhci53aGl0ZS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53aGl0ZVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIud2hpdGVbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndoaXRlLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndoaXRlW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuY2xlYXIud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIud2hpdGVbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmNsZWFyLndoaXRlW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5jbGVhci53aGl0ZTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZTpob3ZlciwgLmJ1dHRvbi5jbGVhci53aGl0ZTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5jbGVhci53aGl0ZTpmb2N1cyB7XG4gICAgY29sb3I6ICM3ZjdmN2Y7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duOjphZnRlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMS41ZW07IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3c6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bjo6YWZ0ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bjo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXI6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmNsZWFyOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzhBQkQyNDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bi5wcmltYXJ5OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5wcmltYXJ5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci5wcmltYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI0ZBNjQwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZHJvcGRvd24uc2Vjb25kYXJ5OjphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0LmRyb3Bkb3duW3R5cGU9XCJzdWJtaXRcIl06OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLnNlY29uZGFyeTo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZHJvcGRvd24uY2xlYXIuc2Vjb25kYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cuc3VjY2Vzczo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bi5zdWNjZXNzOjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5zdWNjZXNzOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci5zdWNjZXNzOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzhBQkQyNDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cud2FybmluZzo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bi53YXJuaW5nOjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci53YXJuaW5nOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci53YXJuaW5nOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5hbGVydDo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRyb3Bkb3duLmFsZXJ0OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5hbGVydDo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZHJvcGRvd24uY2xlYXIuYWxlcnQ6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmxpZ2h0LWdyYXk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmhvbGxvdy5saWdodC1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRyb3Bkb3duLmxpZ2h0LWdyYXk6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLmxpZ2h0LWdyYXk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmNsZWFyLmxpZ2h0LWdyYXk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjRkJGQkZDOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93Lm1lZGl1bS1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cubWVkaXVtLWdyYXk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZHJvcGRvd24ubWVkaXVtLWdyYXk6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLm1lZGl1bS1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci5tZWRpdW0tZ3JheTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNjMWMxZDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuZGFyay1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cuZGFyay1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmRyb3Bkb3duLmRhcmstZ3JheTo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIuZGFyay1ncmF5OjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci5kYXJrLWdyYXk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNTQ1NDcxOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmJsYWNrOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5ob2xsb3cuYmxhY2s6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuZHJvcGRvd24uYmxhY2s6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLmJsYWNrOjphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kcm9wZG93bi5jbGVhci5ibGFjazo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cud2hpdGU6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmhvbGxvdy53aGl0ZTo6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5kcm9wZG93bi53aGl0ZTo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIud2hpdGU6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRyb3Bkb3duLmNsZWFyLndoaXRlOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFycm93LW9ubHk6OmFmdGVyLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICB0b3A6IC0wLjFlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5hLmJ1dHRvbjpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgLndvb2NvbW1lcmNlIC5idXR0b246aG92ZXIsIC53b29jb21tZXJjZS1wYWdlIC5idXR0b246aG92ZXIsIGEuYnV0dG9uOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAud29vY29tbWVyY2UgLmJ1dHRvbjpmb2N1cywgLndvb2NvbW1lcmNlLXBhZ2UgLmJ1dHRvbjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC1ncm93OiAxOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5idXR0b24tZ3JvdXAgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwIGEsIC5idXR0b24tZ3JvdXAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cCBhIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6bGFzdC1jaGlsZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cCBhOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpsYXN0LWNoaWxkLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwIGE6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24sIC5idXR0b24tZ3JvdXAudGlueSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnRpbnkgYSwgLmJ1dHRvbi1ncm91cC50aW55IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAudGlueSBhIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnNtYWxsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc21hbGwgYSwgLmJ1dHRvbi1ncm91cC5zbWFsbCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnNtYWxsIGEge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24sIC5idXR0b24tZ3JvdXAubGFyZ2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5sYXJnZSBhLCAuYnV0dG9uLWdyb3VwLmxhcmdlIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubGFyZ2UgYSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIGEsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCBhIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IGEsIC5idXR0b24tZ3JvdXAucHJpbWFyeSBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYSwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAucHJpbWFyeSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAucHJpbWFyeSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAucHJpbWFyeSBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzg1MDAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgYSwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3VjY2VzcyBhLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3VjY2VzcyBhLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGFbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3VjY2VzcyBhLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGFbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3VjY2VzcyBhLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGFbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEFCRDI0O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2ZTk3MWQ7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLndhcm5pbmcgYSwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2FybmluZyBhLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2FybmluZyBhLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGFbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2FybmluZyBhLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGFbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2FybmluZyBhLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGFbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYSwgLmJ1dHRvbi1ncm91cC5hbGVydCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGEsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYWxlcnQgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSBhLCAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IGEsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5saWdodC1ncmF5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAubGlnaHQtZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmxpZ2h0LWdyYXkgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzJkMTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5IC5idXR0b24sIC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhLCAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgYSwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxYzFkMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLm1lZGl1bS1ncmF5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5tZWRpdW0tZ3JheSBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5M2FlO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGEsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGEsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NzE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5kYXJrLWdyYXkgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ1YTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLmJsYWNrIC5idXR0b24sIC5idXR0b24tZ3JvdXAuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhLCAuYnV0dG9uLWdyb3VwLmJsYWNrIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYmxhY2sgYSwgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYmxhY2sgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYmxhY2sgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuYmxhY2sgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ibGFjayAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLmJsYWNrIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmJsYWNrIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ibGFjayBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLndoaXRlIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhLCAuYnV0dG9uLWdyb3VwLndoaXRlIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2hpdGUgYSwgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2hpdGUgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2hpdGUgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAud2hpdGUgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLndoaXRlIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndoaXRlIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC53aGl0ZSBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JjYmNiO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4QUJEMjQ7XG4gICAgY29sb3I6ICM4QUJEMjQ7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDU1ZjEyO1xuICAgIGNvbG9yOiAjNDU1ZjEyOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnByaW1hcnksIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNGQTY0MDA7XG4gICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEucHJpbWFyeTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjN2QzMjAwO1xuICAgIGNvbG9yOiAjN2QzMjAwOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IGEsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc2Vjb25kYXJ5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc2Vjb25kYXJ5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuc3VjY2VzcywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhBQkQyNDtcbiAgICBjb2xvcjogIzhBQkQyNDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzczpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzczpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5zdWNjZXNzOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM0NTVmMTI7XG4gICAgY29sb3I6ICM0NTVmMTI7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2FybmluZywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZzpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmc6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS53YXJuaW5nOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5hbGVydCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYWxlcnRbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydC5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYWxlcnRbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0OmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmFsZXJ0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5LCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEubGlnaHQtZ3JheSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEubGlnaHQtZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5saWdodC1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEubGlnaHQtZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEubGlnaHQtZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5saWdodC1ncmF5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0ZCRkJGQztcbiAgICBjb2xvcjogI0ZCRkJGQzsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5saWdodC1ncmF5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubGlnaHQtZ3JheSBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmxpZ2h0LWdyYXk6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5saWdodC1ncmF5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmxpZ2h0LWdyYXk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5saWdodC1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM2YzZjOTA7XG4gICAgY29sb3I6ICM2YzZjOTA7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93Lm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93Lm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93Lm1lZGl1bS1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5tZWRpdW0tZ3JheSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLm1lZGl1bS1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5tZWRpdW0tZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubWVkaXVtLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLm1lZGl1bS1ncmF5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxYzFkMDtcbiAgICBjb2xvcjogI2MxYzFkMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5tZWRpdW0tZ3JheSBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLm1lZGl1bS1ncmF5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLm1lZGl1bS1ncmF5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLm1lZGl1bS1ncmF5OmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLm1lZGl1bS1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM1NjU2NzM7XG4gICAgY29sb3I6ICM1NjU2NzM7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXksIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmRhcmstZ3JheSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmRhcmstZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGFyay1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmRhcmstZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGFyay1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmRhcmstZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRhcmstZ3JheVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGFyay1ncmF5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzU0NTQ3MTtcbiAgICBjb2xvcjogIzU0NTQ3MTsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5kYXJrLWdyYXkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LmRhcmstZ3JheSBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRhcmstZ3JheTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGFyay1ncmF5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRhcmstZ3JheTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEuZGFyay1ncmF5OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMyYTJhMzg7XG4gICAgY29sb3I6ICMyYTJhMzg7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgYSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmJsYWNrICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFjaywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFjaywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5ibGFjaywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFjay5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5ibGFjay5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2tbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmJsYWNrW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFjay5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5ibGFjay5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2tbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmJsYWNrW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFjay5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5ob2xsb3cgYS5ibGFjay5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2tbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmJsYWNrW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy5ibGFjayBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmJsYWNrOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmJsYWNrOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmJsYWNrOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLmJsYWNrOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGJsYWNrO1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSBhLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSBhLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIGFbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSBhLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIGFbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSBhLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53aGl0ZSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIGFbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLndoaXRlLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLndoaXRlLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2hpdGVbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2hpdGVbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndoaXRlLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmhvbGxvdyBhLndoaXRlLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndoaXRlW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2hpdGVbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVmZWZlO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93LndoaXRlIGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2hpdGU6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGU6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2hpdGU6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2hpdGU6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGU6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuaG9sbG93IGEud2hpdGU6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzdmN2Y3ZjtcbiAgICBjb2xvcjogIzdmN2Y3ZjsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLCAuYnV0dG9uLWdyb3VwLmNsZWFyIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLCAuYnV0dG9uLWdyb3VwLmNsZWFyIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICM4QUJEMjQ7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYTpmb2N1cyB7XG4gICAgY29sb3I6ICM0NTVmMTI7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYSwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnksIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEucHJpbWFyeTpmb2N1cyB7XG4gICAgY29sb3I6ICM3ZDMyMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYSwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSBhW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSBhW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSBhW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnNlY29uZGFyeTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGEsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3MsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzcy5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjOEFCRDI0OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzczpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc3VjY2Vzczpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGNvbG9yOiAjNDU1ZjEyOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGEsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmcsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZy5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmdbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZy5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZy5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2FybmluZ1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZzpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmc6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZzpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGEsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydCwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydFtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydFtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5hbGVydFtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYWxlcnQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGEsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5LCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubGlnaHQtZ3JheVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubGlnaHQtZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5W2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubGlnaHQtZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjRkJGQkZDOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubGlnaHQtZ3JheSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmxpZ2h0LWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5saWdodC1ncmF5IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5saWdodC1ncmF5OmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEubGlnaHQtZ3JheTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmxpZ2h0LWdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiAjNmM2YzkwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGEsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheSwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5LmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5tZWRpdW0tZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjYzFjMWQwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIubWVkaXVtLWdyYXkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5tZWRpdW0tZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLm1lZGl1bS1ncmF5IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5tZWRpdW0tZ3JheTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLm1lZGl1bS1ncmF5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEubWVkaXVtLWdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiAjNTY1NjczOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGEsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5kYXJrLWdyYXkgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5kYXJrLWdyYXkgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmRhcmstZ3JheSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhW2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci5kYXJrLWdyYXkgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXksIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5W2Rpc2FibGVkXSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmRhcmstZ3JheVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5W2Rpc2FibGVkXTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmRhcmstZ3JheVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXlbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5W2Rpc2FibGVkXTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLmRhcmstZ3JheVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjNTQ1NDcxOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuZGFyay1ncmF5IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kYXJrLWdyYXk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXk6Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5kYXJrLWdyYXk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMmEyYTM4OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGEsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGEuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgYVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGEuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgYVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGEuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYVtkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgYVtkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjaywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2ssIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2suZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFja1tkaXNhYmxlZF0sICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5ibGFja1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2suZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFja1tkaXNhYmxlZF06aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5ibGFja1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjay5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrLmRpc2FibGVkOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2suZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFja1tkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ibGFja1tkaXNhYmxlZF06Zm9jdXMsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuY2xlYXIgYS5ibGFja1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYmxhY2sgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5ibGFjayAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLmJsYWNrIGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjazpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2s6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5ibGFjazpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmJsYWNrOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEuYmxhY2s6Zm9jdXMge1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIGFbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIGFbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGFbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIGFbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGUsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGUuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZS5kaXNhYmxlZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGVbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGVbZGlzYWJsZWRdLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2hpdGVbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGUuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZS5kaXNhYmxlZDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGVbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGVbZGlzYWJsZWRdOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2hpdGVbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGUuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZS5kaXNhYmxlZDpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGVbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2hpdGVbZGlzYWJsZWRdOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLmNsZWFyIGEud2hpdGVbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndoaXRlIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIud2hpdGUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhci53aGl0ZSBhOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGU6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2hpdGU6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5jbGVhciBhLndoaXRlOmZvY3VzIHtcbiAgICBjb2xvcjogIzdmN2Y3ZjsgfVxuICAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5uby1nYXBzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubm8tZ2FwcyBhLCAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5uby1nYXBzIGEge1xuICAgIG1hcmdpbi1yaWdodDogLTAuMDYyNXJlbTsgfVxuICAgIC5idXR0b24tZ3JvdXAubm8tZ2FwcyAuYnV0dG9uICsgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5uby1nYXBzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEgKyAuYnV0dG9uLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgYSArIC5idXR0b24sIC5idXR0b24tZ3JvdXAubm8tZ2FwcyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uICsgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5uby1nYXBzIC5idXR0b24gKyBhLCAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSArIGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAubm8tZ2FwcyBhICsgYSB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgYSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3RhY2tlZCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgYSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYSB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6bGFzdC1jaGlsZCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkIGE6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpsYXN0LWNoaWxkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIGE6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmxhc3QtY2hpbGQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIGE6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLmV4cGFuZGVkICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5idXR0b24tZ3JvdXAuc3RhY2tlZC5leHBhbmRlZCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCBhIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIGEsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBhIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjIuNDk4NzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgY29sb3I6ICM1NDU0NzE7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmNsb3NlLWJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2xvc2UtYnV0dG9uLnNtYWxsIHtcbiAgICByaWdodDogMC42NnJlbTtcbiAgICB0b3A6IDAuMzNlbTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5jbG9zZS1idXR0b24sIC5jbG9zZS1idXR0b24ubWVkaXVtIHtcbiAgICByaWdodDogMXJlbTtcbiAgICB0b3A6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogI0ZBNjQwMDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzhBQkQyNDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAubGFiZWwuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNjYzRiMzc7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLmxpZ2h0LWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICNGQkZCRkM7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLm1lZGl1bS1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kOiAjYzFjMWQwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5sYWJlbC5kYXJrLWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICM1NDU0NzE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLmJsYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC53aGl0ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG4ucHJvZ3Jlc3Mge1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxYzFkMDsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQTY0MDA7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEFCRDI0OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG4gIC5wcm9ncmVzcy5saWdodC1ncmF5IC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkJGQzsgfVxuICAucHJvZ3Jlc3MubWVkaXVtLWdyYXkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzFjMWQwOyB9XG4gIC5wcm9ncmVzcy5kYXJrLWdyYXkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1NDcxOyB9XG4gIC5wcm9ncmVzcy5ibGFjayAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cbiAgLnByb2dyZXNzLndoaXRlIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBoZWlnaHQ6IDJyZW07IH1cblxuLnN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3dpdGNoLXBhZGRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNjMWMxZDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgaW5wdXQgKyAuc3dpdGNoLXBhZGRsZSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgYmFja2dyb3VuZDogI0ZBNjQwMDsgfVxuICAgIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICAgbGVmdDogMi4yNXJlbTsgfVxuICBpbnB1dDpkaXNhYmxlZCB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gaW5wdXQ6Zm9jdXMgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uc3dpdGNoLWFjdGl2ZSwgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uc3dpdGNoLWFjdGl2ZSB7XG4gIGxlZnQ6IDglO1xuICBkaXNwbGF5OiBub25lOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc3dpdGNoLWluYWN0aXZlIHtcbiAgcmlnaHQ6IDE1JTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2l0Y2gudGlueSB7XG4gIGhlaWdodDogMS41cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjYyNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07IH1cbiAgLnN3aXRjaC50aW55IGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDEuNzVyZW07IH1cblxuLnN3aXRjaC5zbWFsbCB7XG4gIGhlaWdodDogMS43NXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogMy41cmVtO1xuICAgIGhlaWdodDogMS43NXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDJyZW07IH1cblxuLnN3aXRjaC5sYXJnZSB7XG4gIGhlaWdodDogMi41cmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMi43NXJlbTsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICB0aGVhZCB0cixcbiAgdGZvb3QgdHIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRoZWFkIHRoLFxuICB0aGVhZCB0ZCxcbiAgdGZvb3QgdGgsXG4gIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICB0Ym9keSB0aCxcbiAgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICB0YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgICB0YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9IH1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbnRhYmxlLmhvdmVyIHRoZWFkIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsgfVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxudGFibGUuaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbnRhYmxlLmhvdmVyOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBjb2xvcjogI2MxYzFkMDsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2MxYzFkMDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBib3JkZXI6IHB4IHNvbGlkICNGQkZCRkM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDMwcHggLTI1cHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1kaXZpZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogI0ZCRkJGQzsgfVxuICAuY2FyZC1kaXZpZGVyID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtc2VjdGlvbiB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgLmNhcmQtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLWltYWdlIHtcbiAgbWluLWhlaWdodDogMXB4OyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWMxZDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLnBhZ2luYXRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC5wYWdpbmF0aW9uOjpiZWZvcmUsIC5wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjA2MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAucGFnaW5hdGlvbiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5wYWdpbmF0aW9uIGEsXG4gIC5wYWdpbmF0aW9uIGJ1dHRvbixcbiAgLnBhZ2luYXRpb24gLmJ1dHRvbixcbiAgLnBhZ2luYXRpb24gI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnBhZ2luYXRpb24gYSxcbiAgLnBhZ2luYXRpb24gYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnBhZ2luYXRpb24gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAucGFnaW5hdGlvbiBhOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlcixcbiAgICAucGFnaW5hdGlvbiAuYnV0dG9uOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsXG4gICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLFxuICAgIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5wYWdpbmF0aW9uIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI0ZCRkJGQzsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjYzFjMWQwO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiBcIsKrXCI7IH1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBjb250ZW50OiBcIsK7XCI7IH1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY3O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLmFjY29yZGlvbltkaXNhYmxlZF0gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJvcmRlcjogMTBweCBzb2xpZCAjZmVmZWZlO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAjZmVmZWZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNmMTsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGNvbnRlbnQ6IFwiK1wiOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCTXCI7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gIGJvcmRlcjogMTBweCBzb2xpZCAjZmVmZWZlO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICNmZWZlZmU7IH1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLm1lZGlhLW9iamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjIuNDk4NzVlbSkge1xuICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgICAuc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLm1haW4tc2VjdGlvbiB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyxcbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi50YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRkJGQkZDO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAudGFiczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRhYnMuc2ltcGxlID4gbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogI0ZBNjQwMDsgfVxuICAudGFicy5wcmltYXJ5ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogI2VlNWYwMDsgfVxuXG4udGFicy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC50YWJzLXRpdGxlID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjRkE2NDAwOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC50YWJzLXRpdGxlID4gYSB7XG4gICAgICBvdXRsaW5lOiAwOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogI2Q3NTYwMDsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkJGQkZDO1xuICAgICAgY29sb3I6ICNGQTY0MDA7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNGQkZCRkM7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRkJGQkZDO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5tZW51IGEsXG4gIC5tZW51IC5idXR0b24sXG4gIC5tZW51ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG4gICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5tZW51IGEsXG4gIC5tZW51IGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG4gIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5tZW51IGEge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxcmVtOyB9XG4gIC5tZW51IGlucHV0LFxuICAubWVudSBzZWxlY3QsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbixcbiAgLm1lbnUgLmJ1dHRvbixcbiAgLm1lbnUgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLm1lbnUgYSxcbiAgLm1lbnUgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLm1lbnUgYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudS52ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tdG9wIGxpIGEgaW1nLFxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS52ZXJ0aWNhbC5pY29uLXRvcCBsaSBhIHN2ZywgLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4gICAgLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuZXhwYW5kZWQuaWNvbi10b3AgbGkgYSBpbWcsXG4gIC5tZW51LmV4cGFuZGVkLmljb24tdG9wIGxpIGEgaSxcbiAgLm1lbnUuZXhwYW5kZWQuaWNvbi10b3AgbGkgYSBzdmcsIC5tZW51LmV4cGFuZGVkLmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAubWVudS5leHBhbmRlZC5pY29uLWJvdHRvbSBsaSBhIGksXG4gIC5tZW51LmV4cGFuZGVkLmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZW51LnNpbXBsZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5tZW51LnNpbXBsZSBsaSArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1lbnUuc2ltcGxlIGEge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5tZW51LnhsYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS54bGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUueGxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS54bGFyZ2Utc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAgIC5tZW51Lnh4bGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUueHhsYXJnZS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS54eGxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS54eGxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbnMgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLXRvcCBhLCAubWVudS5pY29uLXJpZ2h0IGEsIC5tZW51Lmljb24tYm90dG9tIGEsIC5tZW51Lmljb24tbGVmdCBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tbGVmdCBsaSBhLCAubWVudS5uZXN0ZWQuaWNvbi1sZWZ0IGxpIGEge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIGltZyxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi1sZWZ0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXJpZ2h0IGxpIGEsIC5tZW51Lm5lc3RlZC5pY29uLXJpZ2h0IGxpIGEge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tcmlnaHQgbGkgYSBpbWcsXG4gICAgLm1lbnUubmVzdGVkLmljb24tcmlnaHQgbGkgYSBpLFxuICAgIC5tZW51Lm5lc3RlZC5pY29uLXJpZ2h0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tdG9wIGxpIGEsIC5tZW51Lm5lc3RlZC5pY29uLXRvcCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXRvcCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBzdmcsIC5tZW51Lm5lc3RlZC5pY29uLXRvcCBsaSBhIGltZyxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi10b3AgbGkgYSBpLFxuICAgIC5tZW51Lm5lc3RlZC5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS5pY29uLWJvdHRvbSBsaSBhLCAubWVudS5uZXN0ZWQuaWNvbi1ib3R0b20gbGkgYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgc3ZnLCAubWVudS5uZXN0ZWQuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4gICAgLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEgaSxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLm1lbnUuYWxpZ24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQuaWNvbi10b3AgbGkgYSBpbWcsXG4gIC5tZW51LmFsaWduLXJpZ2h0Lmljb24tdG9wIGxpIGEgaSxcbiAgLm1lbnUuYWxpZ24tcmlnaHQuaWNvbi10b3AgbGkgYSBzdmcsIC5tZW51LmFsaWduLXJpZ2h0Lmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAubWVudS5hbGlnbi1yaWdodC5pY29uLWJvdHRvbSBsaSBhIGksXG4gIC5tZW51LmFsaWduLXJpZ2h0Lmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVudS5hbGlnbi1yaWdodCAubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudSAubWVudS10ZXh0IHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG4ubWVudS1jZW50ZXJlZCA+IC5tZW51IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjZmVmZWZlLCAwIDE0cHggMCAjZmVmZWZlO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjYzFjMWQwO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2MxYzFkMCwgMCAxNHB4IDAgI2MxYzFkMDsgfVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb24uZGFyazo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzAwMDAwMCwgMCAxNHB4IDAgIzAwMDAwMDtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTQ1NDcxO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzU0NTQ3MSwgMCAxNHB4IDAgIzU0NTQ3MTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNGQTY0MDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDFyZW07XG4gIGxlZnQ6IGF1dG87IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9XG5cbi5zdWJtZW51LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5zdWJtZW51LXRvZ2dsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjRkE2NDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG5cbi5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4uaXMtZHJpbGxkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5pcy1kcmlsbGRvd24gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5pcy1kcmlsbGRvd24uYW5pbWF0ZS1oZWlnaHQge1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzOyB9XG5cbi5kcmlsbGRvd24gYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjRkE2NDAwOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1hY3RpdmUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1jbG9zaW5nIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUgYSB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cblxuLmRyaWxsZG93biAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZHJpbGxkb3duIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0ZBNjQwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTsgfVxuXG4uZHJpbGxkb3duLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZWZlZmU7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07IH1cblxuLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjRkE2NDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IDVweDtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTJweDsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudSAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDVweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZlZmVmZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZWZlZmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZWZlZmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4OyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZWZlZmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZlZmVmZTsgfSB9XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICB3aWR0aDogMTAwcHg7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC00cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxYzFkMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICAuZHJvcGRvd24gLmlzLWRyb3Bkb3duLXN1Ym1lbnUgYSB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZWZlZmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udG9wLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAudG9wLWJhciB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQuOTk4NzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3IteGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci14eGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbjogMC41cmVtIDFyZW0gMC41cmVtIDA7IH1cblxuLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxleDogMCAwIGF1dG87IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAubWVkaXVtLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWVkaXVtLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAueGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54bGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLnhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAueGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC54bGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLnhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwNWVtKSB7XG4gIC54eGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54eGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC54eGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC54eGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC54eGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC54eGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtZ3JvdyB7XG4gIGZsZXg6IDEgMCBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLXNocmluayB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG5cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4uZmxleC1kaXItY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAubWVkaXVtLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5sYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAueGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC54bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAueHhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAueHhsYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLnh4bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAueHhsYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAueHhsYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4udmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkgYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2Mi40OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkgYW5kIChtYXgtd2lkdGg6IDEwNC45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA1ZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXh4bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwNWVtKSB7XG4gIC5oaWRlLWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNC45OTg3NWVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1kYXJrLW1vZGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5oaWRlLWZvci1kYXJrLW1vZGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3ItaWUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zaG93LWZvci1pZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItaWUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5pcy1zdHVjayAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmlzLXN0dWNrIC5oaWRlLWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi50ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtdHJ1bmNhdGUge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsgfVxuXG4udGV4dC13cmFwIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxuXG4udGV4dC1vdmVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmUgIWltcG9ydGFudDsgfVxuXG4udGV4dC11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LWxpbmUtdGhyb3VnaCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoICFpbXBvcnRhbnQ7IH1cblxuLmZvbnQtd2lkZSB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjI1cmVtOyB9XG5cbi5mb250LW5vcm1hbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5mb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50OyB9XG5cbnVsLmxpc3QtZGlzYyB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhaW1wb3J0YW50OyB9XG5cbnVsLmxpc3QtY2lyY2xlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGUgIWltcG9ydGFudDsgfVxuXG51bC5saXN0LXNxdWFyZSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlICFpbXBvcnRhbnQ7IH1cblxub2wubGlzdC1kZWNpbWFsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsICFpbXBvcnRhbnQ7IH1cblxub2wubGlzdC1sb3dlci1hbHBoYSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGEgIWltcG9ydGFudDsgfVxuXG5vbC5saXN0LWxvd2VyLWxhdGluIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1sYXRpbiAhaW1wb3J0YW50OyB9XG5cbm9sLmxpc3QtbG93ZXItcm9tYW4ge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuICFpbXBvcnRhbnQ7IH1cblxub2wubGlzdC11cHBlci1hbHBoYSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItYWxwaGEgIWltcG9ydGFudDsgfVxuXG5vbC5saXN0LXVwcGVyLWxhdGluIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbiAhaW1wb3J0YW50OyB9XG5cbm9sLmxpc3QtdXBwZXItcm9tYW4ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuICFpbXBvcnRhbnQ7IH1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA1MDAwcHggIWltcG9ydGFudDsgfVxuICAucm91bmRlZCAuc3dpdGNoLXBhZGRsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAwMHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAucm91bmRlZCAuc3dpdGNoLXBhZGRsZTphZnRlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLnJhZGl1cyB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTsgfVxuXG4uYm9yZGVyZWQge1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjYzFjMWQwOyB9XG5cbi5zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4uYXJyb3ctZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuNDM3NXJlbTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4uYXJyb3ctdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjQzNzVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7IH1cblxuLmFycm93LXJpZ2h0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC40Mzc1cmVtO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7IH1cblxuLmFycm93LWxlZnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjQzNzVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5zZXBhcmF0b3ItY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLnNlcGFyYXRvci1jZW50ZXI6OmJlZm9yZSwgLnNlcGFyYXRvci1jZW50ZXI6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuc2VwYXJhdG9yLWNlbnRlcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zZXBhcmF0b3ItY2VudGVyOjphZnRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMC4xMjVyZW0gc29saWQgI0ZBNjQwMDtcbiAgICBtYXJnaW46IDEuNXJlbSBhdXRvIDA7IH1cblxuLnNlcGFyYXRvci1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC5zZXBhcmF0b3ItbGVmdDo6YmVmb3JlLCAuc2VwYXJhdG9yLWxlZnQ6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuc2VwYXJhdG9yLWxlZnQ6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2VwYXJhdG9yLWxlZnQ6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBib3JkZXItYm90dG9tOiAwLjEyNXJlbSBzb2xpZCAjRkE2NDAwO1xuICAgIG1hcmdpbjogMS41cmVtIGF1dG8gMDtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi5zZXBhcmF0b3ItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC5zZXBhcmF0b3ItcmlnaHQ6OmJlZm9yZSwgLnNlcGFyYXRvci1yaWdodDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5zZXBhcmF0b3ItcmlnaHQ6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2VwYXJhdG9yLXJpZ2h0OjphZnRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMC4xMjVyZW0gc29saWQgI0ZBNjQwMDtcbiAgICBtYXJnaW46IDEuNXJlbSBhdXRvIDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLm92ZXJmbG93LXZpc2libGUge1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyB9XG5cbi5vdmVyZmxvdy14LXZpc2libGUge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7IH1cblxuLm92ZXJmbG93LXktdmlzaWJsZSB7XG4gIG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDsgfVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5vdmVyZmxvdy14LWhpZGRlbiB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5vdmVyZmxvdy15LWhpZGRlbiB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5vdmVyZmxvdy1zY3JvbGwge1xuICBvdmVyZmxvdzogc2Nyb2xsICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4ub3ZlcmZsb3cteC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGwgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5vdmVyZmxvdy15LXNjcm9sbCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbCAhaW1wb3J0YW50O1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLmRpc3BsYXktaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cblxuLmRpc3BsYXktaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmRpc3BsYXktYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5kaXNwbGF5LXRhYmxlIHtcbiAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuXG4uZGlzcGxheS10YWJsZS1jZWxsIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbi5wb3NpdGlvbi1zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7IH1cblxuLnBvc2l0aW9uLXJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IH1cblxuLnBvc2l0aW9uLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IH1cblxuLnBvc2l0aW9uLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cblxuLnBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB0b3A6IDByZW0gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDByZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5NzU7IH1cblxuLnBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICByaWdodDogMHJlbSAhaW1wb3J0YW50O1xuICBib3R0b206IDByZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5NzU7IH1cblxuLmJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7IH1cblxuLmJvcmRlci1ub25lIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cblxuLndpZHRoLTI1IHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG5cbi53aWR0aC01MCB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuXG4ud2lkdGgtNzUge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLndpZHRoLTEwMCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLmhlaWdodC0yNSB7XG4gIGhlaWdodDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLmhlaWdodC01MCB7XG4gIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmhlaWdodC03NSB7XG4gIGhlaWdodDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLmhlaWdodC0xMDAge1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4ubWF4LXdpZHRoLTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5tYXgtaGVpZ2h0LTEwMCB7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLTAge1xuICBtYXJnaW46IDByZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXRvcC0wIHtcbiAgbWFyZ2luLXRvcDogMHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tcmlnaHQtMCB7XG4gIG1hcmdpbi1yaWdodDogMHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLTAge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi1sZWZ0LTAge1xuICBtYXJnaW4tbGVmdDogMHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4taG9yaXpvbnRhbC0wIHtcbiAgbWFyZ2luLXJpZ2h0OiAwcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi12ZXJ0aWNhbC0wIHtcbiAgbWFyZ2luLXRvcDogMHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctMCB7XG4gIHBhZGRpbmc6IDByZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy10b3AtMCB7XG4gIHBhZGRpbmctdG9wOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctcmlnaHQtMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDByZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1ib3R0b20tMCB7XG4gIHBhZGRpbmctYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctbGVmdC0wIHtcbiAgcGFkZGluZy1sZWZ0OiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctaG9yaXpvbnRhbC0wIHtcbiAgcGFkZGluZy1yaWdodDogMHJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDByZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy12ZXJ0aWNhbC0wIHtcbiAgcGFkZGluZy10b3A6IDByZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDByZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLTEge1xuICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tdG9wLTEge1xuICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXJpZ2h0LTEge1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLTEge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLWxlZnQtMSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLWhvcml6b250YWwtMSB7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXZlcnRpY2FsLTEge1xuICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctMSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXRvcC0xIHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXJpZ2h0LTEge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1ib3R0b20tMSB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1sZWZ0LTEge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLWhvcml6b250YWwtMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXZlcnRpY2FsLTEge1xuICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLTIge1xuICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXRvcC0yIHtcbiAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tcmlnaHQtMiB7XG4gIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLTIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi1sZWZ0LTIge1xuICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4taG9yaXpvbnRhbC0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLm1hcmdpbi12ZXJ0aWNhbC0yIHtcbiAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctMiB7XG4gIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy10b3AtMiB7XG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctcmlnaHQtMiB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1ib3R0b20tMiB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctbGVmdC0yIHtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctaG9yaXpvbnRhbC0yIHtcbiAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy12ZXJ0aWNhbC0yIHtcbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLTMge1xuICBtYXJnaW46IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tdG9wLTMge1xuICBtYXJnaW4tdG9wOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXJpZ2h0LTMge1xuICBtYXJnaW4tcmlnaHQ6IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYXJnaW4tYm90dG9tLTMge1xuICBtYXJnaW4tYm90dG9tOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLWxlZnQtMyB7XG4gIG1hcmdpbi1sZWZ0OiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLWhvcml6b250YWwtMyB7XG4gIG1hcmdpbi1yaWdodDogNC41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ubWFyZ2luLXZlcnRpY2FsLTMge1xuICBtYXJnaW4tdG9wOiA0LjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNC41cmVtICFpbXBvcnRhbnQ7IH1cblxuLnBhZGRpbmctMyB7XG4gIHBhZGRpbmc6IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXRvcC0zIHtcbiAgcGFkZGluZy10b3A6IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXJpZ2h0LTMge1xuICBwYWRkaW5nLXJpZ2h0OiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1ib3R0b20tMyB7XG4gIHBhZGRpbmctYm90dG9tOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy1sZWZ0LTMge1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLWhvcml6b250YWwtMyB7XG4gIHBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5wYWRkaW5nLXZlcnRpY2FsLTMge1xuICBwYWRkaW5nLXRvcDogNC41cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY2N3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTsgfSB9XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zOyB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4uc2xpY2stbGlzdDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7IH1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDsgfVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjaywgLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbi5zbGljay10cmFjazphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cblxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5zbGljay1zbGlkZSBpbWcge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMHB4O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLnNsaWNrLXByZXYge1xuICBmb250LXNpemU6IDBweDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDIwJTsgfVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAtNnJlbTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAyMCU7IH1cblxuLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2xpY2stZG90cyBsaSB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMDsgfVxuICAgIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgb3BhY2l0eTogMTsgfVxuXG4uYnV0dG9uLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhIHtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zZWNvbmRhcnksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5zdWNjZXNzLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4QUJEMjQ7IH1cbiAgLmJ1dHRvbi53YXJuaW5nLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLndhcm5pbmcsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmFsZXJ0LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24ubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5saWdodC1ncmF5LCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmxpZ2h0LWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7IH1cbiAgLmJ1dHRvbi5tZWRpdW0tZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5tZWRpdW0tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxYzFkMDsgfVxuICAuYnV0dG9uLmRhcmstZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5kYXJrLWdyYXksIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuZGFyay1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1NDcxOyB9XG4gIC5idXR0b24uYmxhY2ssICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2ssIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuYmxhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi53aGl0ZSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS53aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmhvbGxvdywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3csICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3csIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5ob2xsb3ctZmlsbDpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ob2xsb3ctZmlsbDpob3ZlciwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM4QUJEMjQ7XG4gICAgICBib3JkZXItY29sb3I6ICM4QUJEMjQ7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIucHJpbWFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIucHJpbWFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLnByaW1hcnkge1xuICAgICAgICBib3JkZXItY29sb3I6ICNGQTY0MDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLnNlY29uZGFyeSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIuc2Vjb25kYXJ5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuaG9sbG93LWZpbGw6aG92ZXIuc2Vjb25kYXJ5LCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXQuaG9sbG93LWZpbGw6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIuc3VjY2VzcywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLnN1Y2Nlc3Mge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4QUJEMjQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICM4QUJEMjQ7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLndhcm5pbmcsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLndhcm5pbmcsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ob2xsb3ctZmlsbDpob3Zlci53YXJuaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZhZTAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5ob2xsb3ctZmlsbDpob3Zlci5hbGVydCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIuYWxlcnQsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYS5ob2xsb3ctZmlsbDpob3Zlci5hbGVydCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgICAgICAgYmFja2dyb3VuZDogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIubGlnaHQtZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLmxpZ2h0LWdyYXkge1xuICAgICAgICBib3JkZXItY29sb3I6ICNGQkZCRkM7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGQkZCRkM7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLm1lZGl1bS1ncmF5LCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5ob2xsb3ctZmlsbDpob3Zlci5tZWRpdW0tZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLm1lZGl1bS1ncmF5IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzFjMWQwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjYzFjMWQwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5ob2xsb3ctZmlsbDpob3Zlci5kYXJrLWdyYXksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLmRhcmstZ3JheSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLmRhcmstZ3JheSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzU0NTQ3MTtcbiAgICAgICAgYmFja2dyb3VuZDogIzU0NTQ3MTsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuaG9sbG93LWZpbGw6aG92ZXIuYmxhY2ssICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEuaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLmJsYWNrLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEuaG9sbG93LWZpbGw6aG92ZXIuYmxhY2sge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmhvbGxvdy1maWxsOmhvdmVyLndoaXRlLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLmhvbGxvdy5ob2xsb3ctZmlsbDpob3Zlci53aGl0ZSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhLmhvbGxvdy1maWxsOmhvdmVyLndoaXRlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0JyYW5kb24nO1xuICBzcmM6IHVybChcImZvbnRzL2JyYW5kb25fcmVnLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL2JyYW5kb25fcmVnLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQnJhbmRvbic7XG4gIHNyYzogdXJsKFwiZm9udHMvYnJhbmRvbl9ibGstd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvYnJhbmRvbl9ibGstd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuaDEsIC5oMSwgaDIsIC5oMiwgaDMsIC5oMywgaDQsIC5oNCwgLmFyY2hpdmVfZmlsdGVyIGxhYmVsLCBwLCAucCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuaDEsIC5oMSB7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgaDEsIC5oMSB7XG4gICAgICBmb250LXNpemU6IDMuMTI1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICBoMSwgLmgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNXJlbTsgfSB9XG5cbmgyLCAuaDIge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDIuMzc1cmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICBoMiwgLmgyIHtcbiAgICAgIGZvbnQtc2l6ZTogNy41dnc7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIGgyLCAuaDIge1xuICAgICAgZm9udC1zaXplOiAzLjEyNXJlbTsgfSB9XG5cbmgzLCAuaDMge1xuICBtYXJnaW46IDAuNjI1cmVtIDAgMS44NzVyZW07XG4gIGZvbnQtc2l6ZTogMi4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuaDQsIC5oNCwgLmFyY2hpdmVfZmlsdGVyIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5wLCAucCB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICBwLCAucCB7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9IH1cblxuLnByZXRpdGxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ud3lzaXd5ZyB1bCB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAud3lzaXd5ZyB1bCB7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9IH1cblxuLnRleHQtd2hpdGUgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAudGV4dC13aGl0ZSBhOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxubWFyayB7XG4gIHBhZGRpbmc6IDAgMC4yZW07XG4gIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG5cbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuXG5hW2hyZWZePXRlbF0ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5kYXJrIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuXG4ubGlnaHQge1xuICBiYWNrZ3JvdW5kOiAjRkE2NDAwOyB9XG5cbi5yb3cge1xuICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICBjbGVhcjogYm90aDsgfVxuICAucm93IC5jb2x1bW4uZmxleGlibGUsIC5yb3cgLmZsZXhpYmxlLmNvbHVtbnMge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5yb3cgLmNvbHVtbi5zbWFsbC1mbGV4aWJsZSwgLnJvdyAuc21hbGwtZmxleGlibGUuY29sdW1ucyB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgIC5yb3cgLmNvbHVtbi5tZWRpdW0tZmxleGlibGUsIC5yb3cgLm1lZGl1bS1mbGV4aWJsZS5jb2x1bW5zIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucm93IC5jb2x1bW4ubGFyZ2UtZmxleGlibGUsIC5yb3cgLmxhcmdlLWZsZXhpYmxlLmNvbHVtbnMge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLnJvdyAuY29sdW1uLnhsYXJnZS1mbGV4aWJsZSwgLnJvdyAueGxhcmdlLWZsZXhpYmxlLmNvbHVtbnMge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDVlbSkge1xuICAgIC5yb3cgLmNvbHVtbi54eGxhcmdlLWZsZXhpYmxlLCAucm93IC54eGxhcmdlLWZsZXhpYmxlLmNvbHVtbnMge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAucm93IC5jb2x1bW4gdGFibGUsIC5yb3cgLmNvbHVtbnMgdGFibGUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgLnJvdy5leHBhbmRlZCxcbiAgLnJvdyAucm93IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAucm93LnJ0bCAuY29sdW1uLCAucm93LnJ0bCAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5iZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogI0ZBNjQwMDsgfVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICNGQTY0MDA7IH1cblxuLmJnLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cblxuLnRleHQtc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLmJnLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiAjOEFCRDI0OyB9XG5cbi50ZXh0LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzhBQkQyNDsgfVxuXG4uYmctd2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmFlMDA7IH1cblxuLnRleHQtd2FybmluZyB7XG4gIGNvbG9yOiAjZmZhZTAwOyB9XG5cbi5iZy1hbGVydCB7XG4gIGJhY2tncm91bmQ6ICNjYzRiMzc7IH1cblxuLnRleHQtYWxlcnQge1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uYmctbGlnaHQtZ3JheSB7XG4gIGJhY2tncm91bmQ6ICNGQkZCRkM7IH1cblxuLnRleHQtbGlnaHQtZ3JheSB7XG4gIGNvbG9yOiAjRkJGQkZDOyB9XG5cbi5iZy1tZWRpdW0tZ3JheSB7XG4gIGJhY2tncm91bmQ6ICNjMWMxZDA7IH1cblxuLnRleHQtbWVkaXVtLWdyYXkge1xuICBjb2xvcjogI2MxYzFkMDsgfVxuXG4uYmctZGFyay1ncmF5IHtcbiAgYmFja2dyb3VuZDogIzU0NTQ3MTsgfVxuXG4udGV4dC1kYXJrLWdyYXkge1xuICBjb2xvcjogIzU0NTQ3MTsgfVxuXG4uYmctYmxhY2sge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG5cbi50ZXh0LWJsYWNrIHtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLmJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuXG4udGV4dC13aGl0ZSB7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG5cbmEuYWRkcmVzcyAuaWNvbiB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cblxuYS5waG9uZSAuaWNvbiB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cblxuYS5lbWFpbCAuaWNvbiB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cblxuLmJnLWRhcmstZ3JheSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cblxuLm5vLXBhZCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4ucGFkIHtcbiAgcGFkZGluZzogNnJlbSAwOyB9XG5cbi5nZW4tcGFkIHtcbiAgcGFkZGluZzogMS41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5wYWQtdG9wLW1vYmlsZS1vbmx5IHtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsgfVxuICAubW9iaWxlLXBhZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07IH0gfVxuXG4ucGFkLWFsbHdheXNzbWFsbCB7XG4gIHBhZGRpbmc6IDIuMjVyZW0gMDsgfVxuXG4ubWFyLWFsbHdheXNzbWFsbCB7XG4gIG1hcmdpbjogMi4yNXJlbSAwOyB9XG5cbi5wYWQtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMi4yNXJlbTsgfVxuXG4ucGFkLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAyLjI1cmVtOyB9XG5cbi5wYWQtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG5cbi5wYWQtYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDIuMjVyZW07IH1cblxuLnBhZC1sZWZ0LWFsbHdheXNzbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogMi4yNXJlbTsgfVxuXG4ucGFkLXRvcC1hbGx3YXlzc21hbGwge1xuICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuXG4ucGFkLXJpZ2h0LWFsbHdheXNzbWFsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07IH1cblxuLnBhZC1ib3R0b20tYWxsd2F5c3NtYWxsIHtcbiAgcGFkZGluZy1ib3R0b206IDIuMjVyZW07IH1cblxuLm1hci1hbGx3YXlzc21hbGwge1xuICBtYXJnaW46IDIuMjVyZW07IH1cblxuLm1hci1sZWZ0LWFsbHdheXNzbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiAyLjI1cmVtOyB9XG5cbi5tYXItdG9wLWFsbHdheXNzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cblxuLm1hci1yaWdodC1hbGx3YXlzc21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDIuMjVyZW07IH1cblxuLm1hci1ib3R0b20tYWxsd2F5c3NtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5wYWQtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nOiAyLjI1cmVtIDA7IH1cbiAgLm1hci1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbjogMi4yNXJlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtOyB9XG4gIC5wYWQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTsgfVxuICAucGFkLWxlZnQtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07IH1cbiAgLnBhZC10b3AtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAucGFkLXJpZ2h0LWFsbHdheXNzbWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTsgfVxuICAucGFkLWJvdHRvbS1hbGx3YXlzc21hbGwge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtOyB9XG4gIC5tYXItYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW46IDIuMjVyZW07IH1cbiAgLm1hci1sZWZ0LWFsbHdheXNzbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuMjVyZW07IH1cbiAgLm1hci10b3AtYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tdG9wOiAyLjI1cmVtOyB9XG4gIC5tYXItcmlnaHQtYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjVyZW07IH1cbiAgLm1hci1ib3R0b20tYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnBhZC1hbGx3YXlzc21hbGwge1xuICAgIHBhZGRpbmc6IDIuMjVyZW0gMDsgfVxuICAubWFyLWFsbHdheXNzbWFsbCB7XG4gICAgbWFyZ2luOiAyLjI1cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiAyLjI1cmVtOyB9XG4gIC5wYWQtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtOyB9XG4gIC5wYWQtbGVmdC1hbGx3YXlzc21hbGwge1xuICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTsgfVxuICAucGFkLXRvcC1hbGx3YXlzc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAyLjI1cmVtOyB9XG4gIC5wYWQtcmlnaHQtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG4gIC5wYWQtYm90dG9tLWFsbHdheXNzbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuMjVyZW07IH1cbiAgLm1hci1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbjogMi4yNXJlbTsgfVxuICAubWFyLWxlZnQtYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tbGVmdDogMi4yNXJlbTsgfVxuICAubWFyLXRvcC1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cbiAgLm1hci1yaWdodC1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbi1yaWdodDogMi4yNXJlbTsgfVxuICAubWFyLWJvdHRvbS1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbi1ib3R0b206IDIuMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5wYWQtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nOiAyLjI1cmVtIDA7IH1cbiAgLm1hci1hbGx3YXlzc21hbGwge1xuICAgIG1hcmdpbjogMi4yNXJlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtOyB9XG4gIC5wYWQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTsgfVxuICAucGFkLWxlZnQtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07IH1cbiAgLnBhZC10b3AtYWxsd2F5c3NtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAucGFkLXJpZ2h0LWFsbHdheXNzbWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTsgfVxuICAucGFkLWJvdHRvbS1hbGx3YXlzc21hbGwge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtOyB9XG4gIC5tYXItYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW46IDIuMjVyZW07IH1cbiAgLm1hci1sZWZ0LWFsbHdheXNzbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuMjVyZW07IH1cbiAgLm1hci10b3AtYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tdG9wOiAyLjI1cmVtOyB9XG4gIC5tYXItcmlnaHQtYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjVyZW07IH1cbiAgLm1hci1ib3R0b20tYWxsd2F5c3NtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtOyB9IH1cblxuLnBhZC1zbWFsbCB7XG4gIHBhZGRpbmc6IDIuMjVyZW0gMDsgfVxuXG4ubWFyLXNtYWxsIHtcbiAgbWFyZ2luOiAyLjI1cmVtIDA7IH1cblxuLnBhZC1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtOyB9XG5cbi5wYWQtdG9wIHtcbiAgcGFkZGluZy10b3A6IDIuMjVyZW07IH1cblxuLnBhZC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07IH1cblxuLnBhZC1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTsgfVxuXG4ucGFkLWxlZnQtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07IH1cblxuLnBhZC10b3Atc21hbGwge1xuICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuXG4ucGFkLXJpZ2h0LXNtYWxsIHtcbiAgcGFkZGluZy1yaWdodDogMi4yNXJlbTsgfVxuXG4ucGFkLWJvdHRvbS1zbWFsbCB7XG4gIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtOyB9XG5cbi5tYXItc21hbGwge1xuICBtYXJnaW46IDIuMjVyZW07IH1cblxuLm1hci1sZWZ0LXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDIuMjVyZW07IH1cblxuLm1hci10b3Atc21hbGwge1xuICBtYXJnaW4tdG9wOiAyLjI1cmVtOyB9XG5cbi5tYXItcmlnaHQtc21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDIuMjVyZW07IH1cblxuLm1hci1ib3R0b20tc21hbGwge1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgLnBhZC1zbWFsbCB7XG4gICAgcGFkZGluZzogMi4yNXJlbSAwOyB9XG4gIC5tYXItc21hbGwge1xuICAgIG1hcmdpbjogMi4yNXJlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtOyB9XG4gIC5wYWQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTsgfVxuICAucGFkLWxlZnQtc21hbGwge1xuICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTsgfVxuICAucGFkLXRvcC1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDIuMjVyZW07IH1cbiAgLnBhZC1yaWdodC1zbWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTsgfVxuICAucGFkLWJvdHRvbS1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuMjVyZW07IH1cbiAgLm1hci1zbWFsbCB7XG4gICAgbWFyZ2luOiAyLjI1cmVtOyB9XG4gIC5tYXItbGVmdC1zbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuMjVyZW07IH1cbiAgLm1hci10b3Atc21hbGwge1xuICAgIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cbiAgLm1hci1yaWdodC1zbWFsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI1cmVtOyB9XG4gIC5tYXItYm90dG9tLXNtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnBhZC1zbWFsbCB7XG4gICAgcGFkZGluZzogM3JlbSAwOyB9XG4gIC5tYXItc21hbGwge1xuICAgIG1hcmdpbjogM3JlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtOyB9XG4gIC5wYWQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICAucGFkLWxlZnQtc21hbGwge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuICAucGFkLXRvcC1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07IH1cbiAgLnBhZC1yaWdodC1zbWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICAucGFkLWJvdHRvbS1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgLm1hci1zbWFsbCB7XG4gICAgbWFyZ2luOiAzcmVtOyB9XG4gIC5tYXItbGVmdC1zbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07IH1cbiAgLm1hci10b3Atc21hbGwge1xuICAgIG1hcmdpbi10b3A6IDNyZW07IH1cbiAgLm1hci1yaWdodC1zbWFsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtOyB9XG4gIC5tYXItYm90dG9tLXNtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAucGFkLXNtYWxsIHtcbiAgICBwYWRkaW5nOiA0LjVyZW0gMDsgfVxuICAubWFyLXNtYWxsIHtcbiAgICBtYXJnaW46IDQuNXJlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA0LjVyZW07IH1cbiAgLnBhZC1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogNC41cmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNC41cmVtOyB9XG4gIC5wYWQtbGVmdC1zbWFsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH1cbiAgLnBhZC10b3Atc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiA0LjVyZW07IH1cbiAgLnBhZC1yaWdodC1zbWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogNC41cmVtOyB9XG4gIC5wYWQtYm90dG9tLXNtYWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNC41cmVtOyB9XG4gIC5tYXItc21hbGwge1xuICAgIG1hcmdpbjogNC41cmVtOyB9XG4gIC5tYXItbGVmdC1zbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQuNXJlbTsgfVxuICAubWFyLXRvcC1zbWFsbCB7XG4gICAgbWFyZ2luLXRvcDogNC41cmVtOyB9XG4gIC5tYXItcmlnaHQtc21hbGwge1xuICAgIG1hcmdpbi1yaWdodDogNC41cmVtOyB9XG4gIC5tYXItYm90dG9tLXNtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0LjVyZW07IH0gfVxuXG4ucGFkLWxhcmdlIHtcbiAgcGFkZGluZzogM3JlbSAwOyB9XG5cbi5tYXItbGFyZ2Uge1xuICBtYXJnaW46IDNyZW0gMDsgfVxuXG4ucGFkLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLnBhZC10b3Age1xuICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuXG4ucGFkLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuXG4ucGFkLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9XG5cbi5wYWQtbGVmdC1sYXJnZSB7XG4gIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuXG4ucGFkLXRvcC1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiAzcmVtOyB9XG5cbi5wYWQtcmlnaHQtbGFyZ2Uge1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtOyB9XG5cbi5wYWQtYm90dG9tLWxhcmdlIHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cblxuLm1hci1sYXJnZSB7XG4gIG1hcmdpbjogM3JlbTsgfVxuXG4ubWFyLWxlZnQtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogM3JlbTsgfVxuXG4ubWFyLXRvcC1sYXJnZSB7XG4gIG1hcmdpbi10b3A6IDNyZW07IH1cblxuLm1hci1yaWdodC1sYXJnZSB7XG4gIG1hcmdpbi1yaWdodDogM3JlbTsgfVxuXG4ubWFyLWJvdHRvbS1sYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAucGFkLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA0LjVyZW0gMDsgfVxuICAubWFyLWxhcmdlIHtcbiAgICBtYXJnaW46IDQuNXJlbSAwOyB9XG4gIC5wYWQtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA0LjVyZW07IH1cbiAgLnBhZC1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogNC41cmVtOyB9XG4gIC5wYWQtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNC41cmVtOyB9XG4gIC5wYWQtbGVmdC1sYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH1cbiAgLnBhZC10b3AtbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA0LjVyZW07IH1cbiAgLnBhZC1yaWdodC1sYXJnZSB7XG4gICAgcGFkZGluZy1yaWdodDogNC41cmVtOyB9XG4gIC5wYWQtYm90dG9tLWxhcmdlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNC41cmVtOyB9XG4gIC5tYXItbGFyZ2Uge1xuICAgIG1hcmdpbjogNC41cmVtOyB9XG4gIC5tYXItbGVmdC1sYXJnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQuNXJlbTsgfVxuICAubWFyLXRvcC1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNC41cmVtOyB9XG4gIC5tYXItcmlnaHQtbGFyZ2Uge1xuICAgIG1hcmdpbi1yaWdodDogNC41cmVtOyB9XG4gIC5tYXItYm90dG9tLWxhcmdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0LjVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucGFkLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA2cmVtIDA7IH1cbiAgLm1hci1sYXJnZSB7XG4gICAgbWFyZ2luOiA2cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA2cmVtOyB9XG4gIC5wYWQtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA2cmVtOyB9XG4gIC5wYWQtbGVmdC1sYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cmVtOyB9XG4gIC5wYWQtdG9wLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTsgfVxuICAucGFkLXJpZ2h0LWxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cmVtOyB9XG4gIC5wYWQtYm90dG9tLWxhcmdlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTsgfVxuICAubWFyLWxhcmdlIHtcbiAgICBtYXJnaW46IDZyZW07IH1cbiAgLm1hci1sZWZ0LWxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNnJlbTsgfVxuICAubWFyLXRvcC1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNnJlbTsgfVxuICAubWFyLXJpZ2h0LWxhcmdlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZyZW07IH1cbiAgLm1hci1ib3R0b20tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDZyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5wYWQtbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDcuNXJlbSAwOyB9XG4gIC5tYXItbGFyZ2Uge1xuICAgIG1hcmdpbjogNy41cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDcuNXJlbTsgfVxuICAucGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDcuNXJlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA3LjVyZW07IH1cbiAgLnBhZC1sZWZ0LWxhcmdlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDcuNXJlbTsgfVxuICAucGFkLXRvcC1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDcuNXJlbTsgfVxuICAucGFkLXJpZ2h0LWxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVyZW07IH1cbiAgLnBhZC1ib3R0b20tbGFyZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiA3LjVyZW07IH1cbiAgLm1hci1sYXJnZSB7XG4gICAgbWFyZ2luOiA3LjVyZW07IH1cbiAgLm1hci1sZWZ0LWxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNy41cmVtOyB9XG4gIC5tYXItdG9wLWxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiA3LjVyZW07IH1cbiAgLm1hci1yaWdodC1sYXJnZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA3LjVyZW07IH1cbiAgLm1hci1ib3R0b20tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTsgfSB9XG5cbi5wYWQteGxhcmdlIHtcbiAgcGFkZGluZzogNC41cmVtIDA7IH1cblxuLm1hci14bGFyZ2Uge1xuICBtYXJnaW46IDQuNXJlbSAwOyB9XG5cbi5wYWQtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogNC41cmVtOyB9XG5cbi5wYWQtdG9wIHtcbiAgcGFkZGluZy10b3A6IDQuNXJlbTsgfVxuXG4ucGFkLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogNC41cmVtOyB9XG5cbi5wYWQtYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDQuNXJlbTsgfVxuXG4ucGFkLWxlZnQteGxhcmdlIHtcbiAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH1cblxuLnBhZC10b3AteGxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDQuNXJlbTsgfVxuXG4ucGFkLXJpZ2h0LXhsYXJnZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDQuNXJlbTsgfVxuXG4ucGFkLWJvdHRvbS14bGFyZ2Uge1xuICBwYWRkaW5nLWJvdHRvbTogNC41cmVtOyB9XG5cbi5tYXIteGxhcmdlIHtcbiAgbWFyZ2luOiA0LjVyZW07IH1cblxuLm1hci1sZWZ0LXhsYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiA0LjVyZW07IH1cblxuLm1hci10b3AteGxhcmdlIHtcbiAgbWFyZ2luLXRvcDogNC41cmVtOyB9XG5cbi5tYXItcmlnaHQteGxhcmdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA0LjVyZW07IH1cblxuLm1hci1ib3R0b20teGxhcmdlIHtcbiAgbWFyZ2luLWJvdHRvbTogNC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgLnBhZC14bGFyZ2Uge1xuICAgIHBhZGRpbmc6IDZyZW0gMDsgfVxuICAubWFyLXhsYXJnZSB7XG4gICAgbWFyZ2luOiA2cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA2cmVtOyB9XG4gIC5wYWQtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA2cmVtOyB9XG4gIC5wYWQtbGVmdC14bGFyZ2Uge1xuICAgIHBhZGRpbmctbGVmdDogNnJlbTsgfVxuICAucGFkLXRvcC14bGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA2cmVtOyB9XG4gIC5wYWQtcmlnaHQteGxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cmVtOyB9XG4gIC5wYWQtYm90dG9tLXhsYXJnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDZyZW07IH1cbiAgLm1hci14bGFyZ2Uge1xuICAgIG1hcmdpbjogNnJlbTsgfVxuICAubWFyLWxlZnQteGxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNnJlbTsgfVxuICAubWFyLXRvcC14bGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDZyZW07IH1cbiAgLm1hci1yaWdodC14bGFyZ2Uge1xuICAgIG1hcmdpbi1yaWdodDogNnJlbTsgfVxuICAubWFyLWJvdHRvbS14bGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDZyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucGFkLXhsYXJnZSB7XG4gICAgcGFkZGluZzogNy41cmVtIDA7IH1cbiAgLm1hci14bGFyZ2Uge1xuICAgIG1hcmdpbjogNy41cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDcuNXJlbTsgfVxuICAucGFkLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDcuNXJlbTsgfVxuICAucGFkLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA3LjVyZW07IH1cbiAgLnBhZC1sZWZ0LXhsYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA3LjVyZW07IH1cbiAgLnBhZC10b3AteGxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogNy41cmVtOyB9XG4gIC5wYWQtcmlnaHQteGxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVyZW07IH1cbiAgLnBhZC1ib3R0b20teGxhcmdlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNy41cmVtOyB9XG4gIC5tYXIteGxhcmdlIHtcbiAgICBtYXJnaW46IDcuNXJlbTsgfVxuICAubWFyLWxlZnQteGxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNy41cmVtOyB9XG4gIC5tYXItdG9wLXhsYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNy41cmVtOyB9XG4gIC5tYXItcmlnaHQteGxhcmdlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDcuNXJlbTsgfVxuICAubWFyLWJvdHRvbS14bGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnBhZC14bGFyZ2Uge1xuICAgIHBhZGRpbmc6IDlyZW0gMDsgfVxuICAubWFyLXhsYXJnZSB7XG4gICAgbWFyZ2luOiA5cmVtIDA7IH1cbiAgLnBhZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDlyZW07IH1cbiAgLnBhZC10b3Age1xuICAgIHBhZGRpbmctdG9wOiA5cmVtOyB9XG4gIC5wYWQtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDlyZW07IH1cbiAgLnBhZC1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiA5cmVtOyB9XG4gIC5wYWQtbGVmdC14bGFyZ2Uge1xuICAgIHBhZGRpbmctbGVmdDogOXJlbTsgfVxuICAucGFkLXRvcC14bGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA5cmVtOyB9XG4gIC5wYWQtcmlnaHQteGxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5cmVtOyB9XG4gIC5wYWQtYm90dG9tLXhsYXJnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDlyZW07IH1cbiAgLm1hci14bGFyZ2Uge1xuICAgIG1hcmdpbjogOXJlbTsgfVxuICAubWFyLWxlZnQteGxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogOXJlbTsgfVxuICAubWFyLXRvcC14bGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDlyZW07IH1cbiAgLm1hci1yaWdodC14bGFyZ2Uge1xuICAgIG1hcmdpbi1yaWdodDogOXJlbTsgfVxuICAubWFyLWJvdHRvbS14bGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDlyZW07IH0gfVxuXG4uYW5pbWF0ZS1mYWRlLWluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGN1c3RvbS0xO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzOyB9XG5cbkBrZXlmcmFtZXMgY3VzdG9tLTEge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4uYW5pbWF0ZS16b29tIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlLTEtdG8tMDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsgfVxuXG5Aa2V5ZnJhbWVzIHNjYWxlLTEtdG8tMCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4jYmctZ3JpZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiA5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjsgfVxuICAjYmctZ3JpZC5leHBhbmRlZCB7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAjYmctZ3JpZCBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3V0bGluZTogMC4yNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgICNiZy1ncmlkIGRpdjpiZWZvcmUsICNiZy1ncmlkIGRpdjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDsgfVxuICAgICNiZy1ncmlkIGRpdjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIGxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjEpOyB9XG4gICAgI2JnLWdyaWQgZGl2Om50aC1jaGlsZChvZGQpOmJlZm9yZSB7XG4gICAgICByaWdodDogMC45Mzc1cmVtOyB9XG4gICAgI2JnLWdyaWQgZGl2Om50aC1jaGlsZChvZGQpOmFmdGVyIHtcbiAgICAgIGxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICNiZy1ncmlkIGRpdjpudGgtY2hpbGQoZXZlbik6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDAuOTM3NXJlbTsgfVxuICAgICNiZy1ncmlkIGRpdjpudGgtY2hpbGQoZXZlbik6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDAuOTM3NXJlbTsgfVxuICAjYmctZ3JpZC10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMS4yNXJlbTtcbiAgICBib3R0b206IDEuMjVyZW07XG4gICAgei1pbmRleDogOTk5OTsgfVxuICAjYmctZ3JpZC5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuICAgICNiZy1ncmlkLmFjdGl2ZSArICNiZy1ncmlkLXRvZ2dsZSB7XG4gICAgICBjb2xvcjogZ3JlZW47IH1cblxuLmltZy13cmFwIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaW1nLXdyYXAuY29tcGF0LW9iamVjdC1maXQge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuICAgIC5pbWctd3JhcC5jb21wYXQtb2JqZWN0LWZpdCAuaW1nLW9iaiB7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gIC5pbWctd3JhcCAuaW1nLW9iaiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuXG5hIC5pbWctd3JhcCAuaW1nLW9iaiwgYS5pbWctd3JhcCAuaW1nLW9iaiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0OyB9XG4gIGEgLmltZy13cmFwIC5pbWctb2JqOmhvdmVyLCBhLmltZy13cmFwIC5pbWctb2JqOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOyB9XG5cbi5ncmlkLTEwIC5zbWFsbC0xIHtcbiAgd2lkdGg6IDEwJTsgfVxuXG4uZ3JpZC0xMCAuc21hbGwtMiB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLmdyaWQtMTAgLnNtYWxsLTMge1xuICB3aWR0aDogMzAlOyB9XG5cbi5ncmlkLTEwIC5zbWFsbC00IHtcbiAgd2lkdGg6IDQwJTsgfVxuXG4uZ3JpZC0xMCAuc21hbGwtNSB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLmdyaWQtMTAgLnNtYWxsLTYge1xuICB3aWR0aDogNjAlOyB9XG5cbi5ncmlkLTEwIC5zbWFsbC03IHtcbiAgd2lkdGg6IDcwJTsgfVxuXG4uZ3JpZC0xMCAuc21hbGwtOCB7XG4gIHdpZHRoOiA4MCU7IH1cblxuLmdyaWQtMTAgLnNtYWxsLTkge1xuICB3aWR0aDogOTAlOyB9XG5cbi5ncmlkLTEwIC5zbWFsbC0xMCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgLmdyaWQtMTAgLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogMTAlOyB9XG4gIC5ncmlkLTEwIC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAuZ3JpZC0xMCAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLmdyaWQtMTAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC5ncmlkLTEwIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZ3JpZC0xMCAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLmdyaWQtMTAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC5ncmlkLTEwIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAuZ3JpZC0xMCAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA5MCU7IH1cbiAgLmdyaWQtMTAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuZ3JpZC0xMCAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDEwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDMwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDcwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDkwJTsgfVxuICAuZ3JpZC0xMCAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuI2hlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICAjaGVhZGVyICNzaXRld2lkZS1ub3RpY2Uge1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gICAgI2hlYWRlciAjc2l0ZXdpZGUtbm90aWNlIHN0cm9uZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuICAgICNoZWFkZXIgI3NpdGV3aWRlLW5vdGljZSBhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICNoZWFkZXIgPiAucm93IHtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICNoZWFkZXIgPiAucm93IHtcbiAgICAgICAgcGFkZGluZzogMC42MjVyZW0gMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgICAgICNoZWFkZXIgPiAucm93IC5jb2x1bW4sICNoZWFkZXIgPiAucm93IC5jb2x1bW5zIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cmVtOyB9IH1cbiAgI2hlYWRlciAubG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gICAgI2hlYWRlciAubG9nbyBzdmcgKiB7XG4gICAgICBmaWxsOiAjZmVmZWZlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgI2hlYWRlciAubG9nbyB7XG4gICAgICAgIHBhZGRpbmc6IDEuNTYyNXJlbSAwLjc1cmVtIDEuNjg3NXJlbTsgfVxuICAgICAgICAjaGVhZGVyIC5sb2dvOmhvdmVyIHN2ZyAqLCAjaGVhZGVyIC5sb2dvOmZvY3VzIHN2ZyAqLCAjaGVhZGVyIC5sb2dvOmFjdGl2ZSBzdmcgKiB7XG4gICAgICAgICAgZmlsbDogI0ZBNjQwMDsgfVxuICAgICAgICAjaGVhZGVyIC5sb2dvOmhvdmVyIGltZywgI2hlYWRlciAubG9nbzpmb2N1cyBpbWcsICNoZWFkZXIgLmxvZ286YWN0aXZlIGltZyB7XG4gICAgICAgICAgb3BhY2l0eTogMC42OyB9IH1cbiAgICAjaGVhZGVyIC5sb2dvIHN2ZywgI2hlYWRlciAubG9nbyBpbWcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgI2hlYWRlciAubG9nbyBzdmcsICNoZWFkZXIgLmxvZ28gaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IDEuNzVyZW07IH0gfVxuICAjaGVhZGVyICNtZW51LXRvZ2dsZSB7XG4gICAgd2lkdGg6IDMuODEyNXJlbTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMS4yNXJlbTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLW91dDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVhZGVyICNtZW51LXRvZ2dsZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNjI1cmVtOyB9IH1cbiAgICAjaGVhZGVyICNtZW51LXRvZ2dsZTpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgICAjaGVhZGVyICNtZW51LXRvZ2dsZSBkaXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cbiAgICAgICNoZWFkZXIgI21lbnUtdG9nZ2xlIGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMzEyNXJlbTsgfVxuICAgICAgI2hlYWRlciAjbWVudS10b2dnbGUgZGl2Om50aC1jaGlsZCgzKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMzEyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVhZGVyICNtZW51LXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAjaGVhZGVyICNtYWluLW1lbnUge1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IEJyYW5kb24sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICNoZWFkZXIgI21haW4tbWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDguNjg3NXJlbSAjMDAwMDAwO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZWFkZXIgI21haW4tbWVudSB7XG4gICAgICAgIG1hcmdpbjogMCAtMC45Mzc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB7XG4gICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDUlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM2NTViNWI7IH0gfVxuICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgYSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47IH1cbiAgICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpIGEge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwLjkzNzVyZW0gMS44NzVyZW07XG4gICAgICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNjg3NXJlbTtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMS43NXJlbSAxLjEyNXJlbTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzMzMzM7XG4gICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgYTpmb2N1cywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpIGE6YWN0aXZlIHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMWVtIHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4yNSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSBhLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAgICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpIGEuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOyB9IH1cbiAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLmFjY291bnQgYSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5hY2NvdW50IGE6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNGQTY0MDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuYWNjb3VudCBhOmhvdmVyIHNwYW4ge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLndwbWVudWNhcnRsaSAuZW1wdHktd3BtZW51Y2FydC12aXNpYmxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS53cG1lbnVjYXJ0bGkgc3Bhbi5jYXJ0Y29udGVudHMge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOTlyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxLjY2N2VtO1xuICAgICAgICAgIGhlaWdodDogMS42NjdlbTtcbiAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMTVlbTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47IH1cbiAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLndwbWVudWNhcnRsaSBhOmhvdmVyIHNwYW4uY2FydGNvbnRlbnRzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkud3BtZW51Y2FydGxpIGE6YWN0aXZlIHNwYW4uY2FydGNvbnRlbnRzIHtcbiAgICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDogMC41ZW07XG4gICAgICAgICAgaGVpZ2h0OiAwLjVlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDJweCAycHggMCAwO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHJpZ2h0OiA1LjYyNXJlbTtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlWSgwLjNlbSkgcm90YXRlKDQ1ZGVnKTsgfSB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4zZW0pIHJvdGF0ZSgxMzVkZWcpOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciA+IGE6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmZvY3VzID4gYTphZnRlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YWN0aXZlID4gYTphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXIgPiBhOmFmdGVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpmb2N1cyA+IGE6YWZ0ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmFjdGl2ZSA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjJlbSkgc2NhbGVZKC0xKSByb3RhdGUoMTM1ZGVnKTsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4uYWN0aXZlID4gYSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjRkE2NDAwOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5hY3RpdmUgPiBhOmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlWSgwLjNlbSkgcm90YXRlKDEzNWRlZyk7IH0gfVxuICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgdWwge1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gICAgICAgICAgei1pbmRleDogKzk5OTk7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0OyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCB7XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IH0gfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgdWwge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgd2lkdGg6IDExLjI1cmVtO1xuICAgICAgICAgICAgICBtYXJnaW46IC0wLjYyNXJlbSAwIDAgLTUuNjI1cmVtO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9IH1cbiAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgdWw6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAuNXJlbSAwLjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwMDAwIHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfSB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCBsaSBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cmVtO1xuICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH0gfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgdWwgbGkgYSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW07IH0gfVxuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjg3NXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbSAwLjMxMjVyZW0gMCAwOyB9XG4gICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpIHVsIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS44NzVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMC4zMTI1cmVtIDAuMzEyNXJlbTsgfVxuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCBsaTpvbmx5LWNoaWxkIGEge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCBsaTpob3ZlciBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkgdWwgbGk6Zm9jdXMgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpIHVsIGxpOmFjdGl2ZSBhIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMC42NzsgfSB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaSB1bCBsaS5hY3RpdmUgYSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjRkE2NDAwOyB9IH1cbiAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhIHtcbiAgICAgICAgICBtYXJnaW46IDAuMTI1cmVtIDEuNXJlbSAwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgICAgICAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpOmxhc3Qtb2YtdHlwZSBhIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaTpob3ZlciB1bCwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpOmZvY3VzIHVsLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGk6YWN0aXZlIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkuYWN0aXZlIHVsIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZWFkZXIgI21haW4tbWVudSAubGVmdC1tZW51IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVhZGVyICNtYWluLW1lbnUgLnJpZ2h0LW1lbnUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjIuNDk4NzVlbSkge1xuICAgICNoZWFkZXIge1xuICAgICAgcGFkZGluZzogMC43NXJlbTsgfVxuICAgICAgI2hlYWRlciAudG9wYmFyLXRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAjaGVhZGVyIC50b3BiYXItdGl0bGUgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogNXJlbTsgfVxuICAgICAgICAjaGVhZGVyIC50b3BiYXItdGl0bGUgc3BhbiB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC40NXJlbTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICAgICAgICAjaGVhZGVyIC50b3BiYXItdGl0bGUgc3BhbiAubWVudS1pY29uOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7IH0gfVxuICAjaGVhZGVyLmxpZ2h0LXRleHQgLmxvZ28ge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0OyB9XG4gICAgI2hlYWRlci5saWdodC10ZXh0IC5sb2dvIHN2ZyBzdmcgKiB7XG4gICAgICBmaWxsOiAjMDAwMDAwOyB9XG4gICAgI2hlYWRlci5saWdodC10ZXh0IC5sb2dvIHN2Zzpob3ZlciBzdmcgKiwgI2hlYWRlci5saWdodC10ZXh0IC5sb2dvIHN2Zzpmb2N1cyBzdmcgKiwgI2hlYWRlci5saWdodC10ZXh0IC5sb2dvIHN2ZzphY3RpdmUgc3ZnICoge1xuICAgICAgZmlsbDogI0ZBNjQwMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICNoZWFkZXIubGlnaHQtdGV4dCAjbWFpbi1tZW51IHVsIGxpIGEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgICNoZWFkZXIubGlnaHQtdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlci5saWdodC10ZXh0ICNtYWluLW1lbnUgdWwgbGkuc2Vjb25kYXJ5IGEge1xuICAgICAgbWFyZ2luOiAxLjVyZW0gMy43NXJlbSAwICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAxOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAjaGVhZGVyLmxpZ2h0LXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAjaGVhZGVyLmxpZ2h0LXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAjaGVhZGVyLmxpZ2h0LXRleHQgI21haW4tbWVudSB1bCBsaS5zZWNvbmRhcnkgYSB7XG4gICAgICBib3JkZXItY29sb3I6ICNmZWZlZmU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICNoZWFkZXIubGlnaHQtdGV4dCAjbWFpbi1tZW51IHVsIGxpLnNlY29uZGFyeSBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaSBhIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpIHVsIGxpIGEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICBib2R5LnNob3ctbWVudSAjaGVhZGVyICNtYWluLW1lbnUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2Mi40OTg3NWVtKSB7XG4gIC50b3BiYXItcmVzcG9uc2l2ZS1saW5rcyB7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBzbGlkZURvd24gMXMgZWFzZS1pbjsgfSB9XG5cbmJvZHkuc2Nyb2xsZWQgI2hlYWRlciB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICBib2R5LnNjcm9sbGVkICNoZWFkZXIgI21haW4tbWVudSB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgNS41NjI1cmVtICMwMDAwMDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgYm9keS5zY3JvbGxlZCAjaGVhZGVyICNtYWluLW1lbnUge1xuICAgICAgICBib3JkZXItdG9wOiAwOyB9IH1cbiAgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAubG9nbyBzdmcgKiB7XG4gICAgZmlsbDogIzAwMDAwMDsgfVxuICBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0IC5sb2dvOmhvdmVyIHN2ZyAqLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0IC5sb2dvOmZvY3VzIHN2ZyAqLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0IC5sb2dvOmFjdGl2ZSBzdmcgKiB7XG4gICAgZmlsbDogI0ZBNjQwMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaSBhIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9IH1cblxuYm9keS5sb2dnZWQtaW4gI3dwYWRtaW5iYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgycHgpIHtcbiAgYm9keS5sb2dnZWQtaW4gI21haW4tbWVudSB7XG4gICAgbWFyZ2luLXRvcDogNDZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc4M3B4KSBhbmQgKG1heC13aWR0aDogMTA2M3B4KSB7XG4gIGJvZHkubG9nZ2VkLWluICNtYWluLW1lbnUge1xuICAgIG1hcmdpbi10b3A6IDMycHg7IH0gfVxuXG5ib2R5LmxvZ2dlZC1pbiAjbWFpbi1tZW51IHVsIGxpLmFjY291bnQgYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMTI1cmVtOyB9XG5cbmJvZHkubWVudS1vcGVuICNoZWFkZXIgLm92ZXJsYXkge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgfVxuXG5ib2R5Lm1lbnUtb3BlbiAjaGVhZGVyICNtYWluLW1lbnUge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgfVxuXG5ib2R5Lm1lbnUtb3BlbiAjaGVhZGVyIC5tZW51LXRvZ2dsZSBkaXYge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIGJvZHkubWVudS1vcGVuICNoZWFkZXIgLm1lbnUtdG9nZ2xlIGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgcm90YXRlKDQ1ZGVnKTsgfVxuICBib2R5Lm1lbnUtb3BlbiAjaGVhZGVyIC5tZW51LXRvZ2dsZSBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIGJvZHkubWVudS1vcGVuICNoZWFkZXIgLm1lbnUtdG9nZ2xlIGRpdjpudGgtY2hpbGQoMykge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4uY3VycmVudC1tZW51LWl0ZW0gYSxcbi5jdXJyZW50LXBhZ2UtYW5jZXN0b3IgYSxcbi5jdXJyZW50LXBvc3QtYW5jZXN0b3IgYSB7XG4gIGNvbG9yOiAjRkE2NDAwICFpbXBvcnRhbnQ7IH1cblxuI21haW4ge1xuICB6LWluZGV4OiAyO1xuICBwYWRkaW5nLXRvcDogNS42MTkzOHJlbTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuI2Zvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBwYWRkaW5nLXRvcDogMy41NjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICNmb290ZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuICAjZm9vdGVyIC5yb3cge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgI2Zvb3RlciAucm93IGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluOyB9XG4gICAgICAjZm9vdGVyIC5yb3cgYSBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjsgfVxuICAgICAgI2Zvb3RlciAucm93IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAgICAgICAjZm9vdGVyIC5yb3cgYTpob3ZlciBpbWcge1xuICAgICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyB9XG4gICAgI2Zvb3RlciAucm93IHVsIGxpIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgI2Zvb3RlciAucm93IC5sb2dvIGltZyB7XG4gICAgICB3aWR0aDogMjAwcHg7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAjZm9vdGVyIC5yb3cgLm1lbnUge1xuICAgICAgbWFyZ2luOiAwIC0wLjkzNzVyZW07IH1cbiAgICAjZm9vdGVyIC5yb3cgLnNvY2lhbCBhIHN2ZyB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgZmlsbDogI2ZlZmVmZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluOyB9XG4gICAgI2Zvb3RlciAucm93IC5zb2NpYWwgYTpob3ZlciBzdmcge1xuICAgICAgZmlsbDogI0ZBNjQwMDsgfVxuXG4uZ3JlY2FwdGNoYS1iYWRnZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLmNhcmQuZG91YmxlIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDIwcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgIC5jYXJkLmRvdWJsZSAuaW5uZXItY29udGVudCB7XG4gICAgICBtYXgtd2lkdGg6IDM1dnc7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAxcmVtOyB9IH1cbiAgLmNhcmQtc2VjdGlvbiAuY2FyZC1zZWN0aW9uX19pbWFnZSB7XG4gICAgbWFyZ2luOiAtMS41cmVtIC0xLjVyZW0gMS41cmVtIC0xLjVyZW07IH1cbiAgICAuY2FyZC1zZWN0aW9uIC5jYXJkLXNlY3Rpb25fX2ltYWdlIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMHZoO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICAgIC5jYXJkLXNlY3Rpb24gLmNhcmQtc2VjdGlvbl9faW1hZ2UuY292ZXIgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBvcGFjaXR5OiAwLjQ7IH1cbiAgLmNhcmQtc2VjdGlvbiAuY2FyZC1zZWN0aW9uX190aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAuY2FyZC1zZWN0aW9uIC5jYXJkLXNlY3Rpb25fX3RpdGxlIGgzLCAuY2FyZC1zZWN0aW9uIC5jYXJkLXNlY3Rpb25fX3RpdGxlIGg0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAuY2FyZC1zZWN0aW9uIC5jYXJkLXNlY3Rpb25fX2RhdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmNhcmQtc2VjdGlvbiAuY2FyZC1zZWN0aW9uX19leGNlcnB0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmNhcmQtc2VjdGlvbiAuY2FyZC1zZWN0aW9uX19hdXRob3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgei1pbmRleDogMjsgfVxuICAuY2FyZC1zZWN0aW9uIC5jYXJkLXNlY3Rpb25fX2J1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cblxuYm9keSAucGFnaW5hdGlvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICBib2R5IC5wYWdpbmF0aW9uIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnBhZ2luYXRpb24tcG9pbnRlZCAucGFnaW5hdGlvbi1wb2ludGVkLWJ1dHRvbi1hLCAucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIC5wYWdlLW51bWJlcnMuZG90cywgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiAucGFnZS1udW1iZXJzLmRvdHMsIC5wYWdpbmF0aW9uLXBvaW50ZWQgc3Bhbi5jdXJyZW50LFxuLnBhZ2luYXRpb24tcG9pbnRlZCAucGFnaW5hdGlvbi1wb2ludGVkLWJ1dHRvbiBhLFxuLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiBhIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbWFyZ2luOiAwIDAuMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBvdXRsaW5lOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLnBhZ2luYXRpb24tcG9pbnRlZCAucGFnaW5hdGlvbi1wb2ludGVkLWJ1dHRvbi1hLCAucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIC5wYWdlLW51bWJlcnMuZG90cywgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiAucGFnZS1udW1iZXJzLmRvdHMsIC5wYWdpbmF0aW9uLXBvaW50ZWQgc3Bhbi5jdXJyZW50LFxuICAgIC5wYWdpbmF0aW9uLXBvaW50ZWQgLnBhZ2luYXRpb24tcG9pbnRlZC1idXR0b24gYSxcbiAgICAucGFnaW5hdGlvbi1wb2ludGVkIC5wcmV2IGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnBhZ2luYXRpb24tcG9pbnRlZCAucGFnaW5hdGlvbi1wb2ludGVkLWJ1dHRvbi1hOmhvdmVyLCAucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIC5wYWdlLW51bWJlcnMuZG90czpob3ZlciwgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiAucGFnZS1udW1iZXJzLmRvdHM6aG92ZXIsIC5wYWdpbmF0aW9uLXBvaW50ZWQgc3Bhbi5jdXJyZW50OmhvdmVyLFxuICAucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIGE6aG92ZXIsXG4gIC5wYWdpbmF0aW9uLXBvaW50ZWQgLnByZXYgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTsgfVxuXG4ucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIC5wYWdlLW51bWJlcnMuZG90cywgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiAucGFnZS1udW1iZXJzLmRvdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAucGFnaW5hdGlvbi1wb2ludGVkIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9uIC5wYWdlLW51bWJlcnMuZG90cywgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldiAucGFnZS1udW1iZXJzLmRvdHMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuLnBhZ2luYXRpb24tcG9pbnRlZCBzcGFuLmN1cnJlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNGQTY0MDAgIWltcG9ydGFudDsgfVxuICAucGFnaW5hdGlvbi1wb2ludGVkIHNwYW4uY3VycmVudDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M3NTAwMDsgfVxuXG4ucGFnaW5hdGlvbi1wb2ludGVkIC5uZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7IH1cbiAgLnBhZ2luYXRpb24tcG9pbnRlZCAubmV4dDpob3Zlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICMxYTFhMWE7IH1cbiAgLnBhZ2luYXRpb24tcG9pbnRlZCAubmV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTE3cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAjMDAwMDAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjsgfVxuXG4ucGFnaW5hdGlvbi1wb2ludGVkIC5wcmV2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICBtYXJnaW4tbGVmdDogMThweDsgfVxuICAucGFnaW5hdGlvbi1wb2ludGVkIC5wcmV2OmhvdmVyOjphZnRlciB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICMxYTFhMWE7IH1cbiAgLnBhZ2luYXRpb24tcG9pbnRlZCAucHJldjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5wYWdpbmF0aW9uLXBvaW50ZWQgLnByZXY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTE3cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgIzAwMDAwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7IH1cblxuI2hlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgI2hlcm8gLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgI2hlcm8gLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiA3LjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTsgfSB9XG4gICAgI2hlcm8gLmNvbnRlbnQgLmNhdGVnb3J5IHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiA4MHB4O1xuICAgICAgcGFkZGluZzogMC43NXJlbSAyLjI1cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ3MTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgI2hlcm8gLmNvbnRlbnQgLnByZXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyB9XG4gICAgI2hlcm8gLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjE0Mjg1NzVlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAjaGVybyAuY29udGVudCBwLnBhZ2UtaW50cm8ge1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICNoZXJvIC5jb250ZW50IC5yZWNpcGUtZGV0YWlsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAjaGVybyAuY29udGVudCAucmVjaXBlLWRldGFpbCAuaWNvbjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7IH1cbiAgICAgICNoZXJvIC5jb250ZW50IC5yZWNpcGUtZGV0YWlsIC5pY29uIHN2ZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgd2lkdGg6IDM2cHg7IH1cbiAgICAjaGVybyAuY29udGVudCBoNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgICNoZXJvIC5jb250ZW50IC50aXRsZSArIGg0IHtcbiAgICAgIG1hcmdpbi10b3A6IC0xLjM3NXJlbTsgfVxuICAgICNoZXJvIC5jb250ZW50IGE6bm90KC5idXR0b24pIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgI2hlcm8gLmNvbnRlbnQgLmJ1dHRvbmdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAgICAgI2hlcm8gLmNvbnRlbnQgLmJ1dHRvbmdyb3VwIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtOyB9IH1cbiAgICAjaGVybyAuY29udGVudC5yaWdodCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgICNoZXJvIC5jb250ZW50LnJpZ2h0IHtcbiAgICAgICAgICBtYXJnaW46IDdyZW0gMCAycmVtOyB9IH1cbiAgICAgICNoZXJvIC5jb250ZW50LnJpZ2h0IGEge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgI2hlcm8gLmhlcm8taW1hZ2Utd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAjaGVybyAuaGVyby1pbWFnZS13cmFwcGVyIHZpZGVvIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgLW8tb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAjaGVybyAuaGVyby1pbWFnZS13cmFwcGVyIC52aWRlby13cmFwcGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgIzAwMmY0YiwgI2RjNDIyNSk7XG4gICAgICBvcGFjaXR5OiAuNjsgfVxuICAgICNoZXJvIC5oZXJvLWltYWdlLXdyYXBwZXIgLmhlcm8taW1hZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBhbmltYXRpb246IG1vdmUgNDBzIGVhc2U7IH1cbiAgICAgICNoZXJvIC5oZXJvLWltYWdlLXdyYXBwZXIgLmhlcm8taW1hZ2U6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogNy41cmVtO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDsgfVxuICAjaGVybyAuc2xpY2stc2xpZGUgLmhlcm8taW1hZ2Uge1xuICAgIGFuaW1hdGlvbjogbm9uZTsgfVxuICAjaGVybyAuc2xpY2stc2xpZGUuc2xpY2stYWN0aXZlIC5oZXJvLWltYWdlLCAjaGVybyAuc2xpY2stc2xpZGVbdGFiaW5kZXg9XCIwXCJdIC5oZXJvLWltYWdlIHtcbiAgICBhbmltYXRpb246IG1vdmUgNDBzIGVhc2U7IH1cbiAgI2hlcm8ubGlnaHQtdGV4dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICNoZXJvLmxpZ2h0LXRleHQgLmhlcm8taW1hZ2Utd3JhcHBlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAjaGVyby5saWdodC10ZXh0IC5oZXJvLWltYWdlLXdyYXBwZXIgLmhlcm8taW1hZ2U6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7IH1cbiAgI2hlcm8uZGFyay10ZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgI2hlcm8uZGFyay10ZXh0IC5oZXJvLWltYWdlLXdyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgI2hlcm8uZGFyay10ZXh0IC5oZXJvLWltYWdlLXdyYXBwZXIgLmhlcm8taW1hZ2U6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NCwgMjU0LCAyNTQsIDAuNCkgMCUsIHJnYmEoMjU0LCAyNTQsIDI1NCwgMCkgMTAwJSk7IH1cbiAgI2hlcm8uc21hbGwge1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAjaGVyby5zbWFsbCAuY29udGVudCB7XG4gICAgICBtYXJnaW46IDMuMTI1cmVtIDA7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAgICAgI2hlcm8uc21hbGwgLmNvbnRlbnQge1xuICAgICAgICAgIG1hcmdpbjogNXJlbSAwOyB9IH1cbiAgICAjaGVyby5zbWFsbCBoMSB7XG4gICAgICBjb2xvcjogI0ZBNjQwMDtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gICAgI2hlcm8uc21hbGwgKyAucGFnZWJ1aWxkZXIgc2VjdGlvbjpmaXJzdC1jaGlsZC5iZy13aGl0ZSB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgICAgI2hlcm8uc21hbGwgKyAucGFnZWJ1aWxkZXIgc2VjdGlvbjpmaXJzdC1jaGlsZC5iZy13aGl0ZSA+IC5yb3cgPiAuY29sdW1uID4gLnJvdyA+IC5jb2x1bW4gPiAucGFkLXNtYWxsLCAjaGVyby5zbWFsbCArIC5wYWdlYnVpbGRlciBzZWN0aW9uOmZpcnN0LWNoaWxkLmJnLXdoaXRlID4gLnJvdyA+IC5jb2x1bW5zID4gLnJvdyA+IC5jb2x1bW4gPiAucGFkLXNtYWxsLCAjaGVyby5zbWFsbCArIC5wYWdlYnVpbGRlciBzZWN0aW9uOmZpcnN0LWNoaWxkLmJnLXdoaXRlID4gLnJvdyA+IC5jb2x1bW4gPiAucm93ID4gLmNvbHVtbnMgPiAucGFkLXNtYWxsLCAjaGVyby5zbWFsbCArIC5wYWdlYnVpbGRlciBzZWN0aW9uOmZpcnN0LWNoaWxkLmJnLXdoaXRlID4gLnJvdyA+IC5jb2x1bW5zID4gLnJvdyA+IC5jb2x1bW5zID4gLnBhZC1zbWFsbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAjaGVyby5tZWRpdW0taGVpZ2h0IHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM5LjA2MjVyZW07IH0gfVxuICAjaGVyby5tZWRpdW0taGVpZ2h0IC5jb250ZW50IHtcbiAgICBtYXJnaW46IDEuMjVyZW0gMCA3LjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAjaGVyby5tZWRpdW0taGVpZ2h0IC5jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZXJvLm1lZGl1bS1oZWlnaHQgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiA1LjMxMjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgI2hlcm8uZnVsbC1oZWlnaHQge1xuICAgICAgbWluLWhlaWdodDogMTAwdmg7IH0gfVxuICAjaGVyby5mdWxsLWhlaWdodCAuY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNS4zMTI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgI2hlcm8uZnVsbC1oZWlnaHQgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnZoOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgI2hlcm8uZnVsbC1oZWlnaHQgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXZoOyB9IH1cbiAgI2hlcm8uaGVyby1ob21lIHtcbiAgICBwYWRkaW5nOiAwcmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgI2hlcm8uaGVyby1ob21lIHtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwOyB9IH1cbiAgICAjaGVyby5oZXJvLWhvbWUgLnNsaWNrLXNsaWRlIHtcbiAgICAgIGhlaWdodDogMTAwdmg7IH1cbiAgICAjaGVyby5oZXJvLWhvbWUgLmNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgICAjaGVyby5oZXJvLWhvbWUgLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMS44NzVyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAjaGVyby5oZXJvLWhvbWUgLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICAgI2hlcm8uaGVyby1ob21lIC5jb250ZW50IC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuMTI1cmVtOyB9IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgICAgICNoZXJvLmhlcm8taG9tZSAuY29udGVudCAudGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0LjM3NXJlbTsgfSB9XG4gICAgICAjaGVyby5oZXJvLWhvbWUgLmNvbnRlbnQgLnByZXRpdGxlIGltZywgI2hlcm8uaGVyby1ob21lIC5jb250ZW50IC5zdWJ0aXRsZSBpbWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAgICNoZXJvLmhlcm8taG9tZSAuY29udGVudCAucHJldGl0bGUgaW1nIHtcbiAgICAgICAgd2lkdGg6IDcwdnc7XG4gICAgICAgIG1heC13aWR0aDogNDM5cHg7IH1cbiAgICAgICNoZXJvLmhlcm8taG9tZSAuY29udGVudCAuc3VidGl0bGUgaW1nIHtcbiAgICAgICAgd2lkdGg6IDUwdnc7XG4gICAgICAgIG1heC13aWR0aDogMTUwcHg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICNoZXJvLmhlcm8taG9tZSAuY29udGVudCBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsgfSB9XG4gICNoZXJvLnNpbmdsZSAucm93IC5jb2x1bW4sICNoZXJvLnNpbmdsZSAucm93IC5jb2x1bW5zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC10b3Age1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ3MTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgICNoZXJvLnNpbmdsZSAuaGVyby1jb250ZW50LXRvcCAucm93LXBhZ2UtdGl0bGUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQtdG9wIC5yb3ctcGFnZS10aXRsZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ1LjA2MjVyZW07IH0gfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQtdG9wIC5yb3ctcGFnZS10aXRsZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ2LjA2MjVyZW07IH0gfVxuICAgICAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC10b3AgLnJvdy1wYWdlLXRpdGxlIC5jb250ZW50IHtcbiAgICAgICAgICBtYXJnaW46IDQuNHJlbSAwIDMuN3JlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07IH1cbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAgICAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC10b3AgLnJvdy1wYWdlLXRpdGxlIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQtdG9wIC5yb3ctcGFnZS10aXRsZSAuY29udGVudCAucHJldGl0bGUge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgICNoZXJvLnNpbmdsZSAuaGVyby1jb250ZW50LXRvcCAucm93LXBhZ2UtdGl0bGUgLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICAgICAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC10b3AgLnJvdy1wYWdlLXRpdGxlIC5jb250ZW50IC5yZXZpZXctaW5mbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gICAgICAgICAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC10b3AgLnJvdy1wYWdlLXRpdGxlIC5jb250ZW50IC5yZXZpZXctaW5mbyBpbWcge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgICAgICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQtdG9wIC5yb3ctcGFnZS10aXRsZSAuY29udGVudCAucmV2aWV3LWluZm8gYSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cbiAgICAjaGVyby5zaW5nbGUgLmhlcm8tY29udGVudC1ib3R0b20ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgICNoZXJvLnNpbmdsZSAuaGVyby1jb250ZW50LWJvdHRvbSAucHJvZHVjdC1oZXJvLXByaWNlIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0Ny4wNjI1cmVtO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAycmVtIDJyZW0gMDsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQtYm90dG9tIC5wcm9kdWN0LWhlcm8tcHJpY2UgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzLjEyNXJlbTsgfSB9XG4gICNoZXJvLnNpbmdsZSAuaGVyby1pbWFnZS13cmFwcGVyIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgI2hlcm8uc2luZ2xlIC5oZXJvLWltYWdlLXdyYXBwZXIge1xuICAgICAgICBsZWZ0OiAtMXB4OyB9IH1cbiAgICAjaGVyby5zaW5nbGUgLmhlcm8taW1hZ2Utd3JhcHBlciAuaGVyby1pbWFnZSB7XG4gICAgICBtaW4taGVpZ2h0OiAyMDBweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgICAjaGVyby5zaW5nbGUgLmhlcm8taW1hZ2Utd3JhcHBlciAuaGVyby1pbWFnZSB7XG4gICAgICAgICAgbWluLWhlaWdodDogNDUwcHg7IH0gfVxuXG5Aa2V5ZnJhbWVzIGhlcm9JbWFnZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGhlcm9NYXNrIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbi5zY3JvbGwtYnRtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBNjQwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW0gMCAycmVtOyB9XG4gIC5zY3JvbGwtYnRtIGEge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGZvbnQtZmFtaWx5OiAnQmViYXMgTmV1ZSc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnNjcm9sbC1idG0gYTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlxcMjVCRVwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMTZweDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxlZnQ6IDQ5LjUlOyB9XG5cbkBrZXlmcmFtZXMgbW92ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7IH0gfVxuXG4uYXJjaGl2ZV9maWx0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkJGQkZDO1xuICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5hcmNoaXZlX2ZpbHRlciBzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDAgMCAwIDJyZW07XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAuYXJjaGl2ZV9maWx0ZXIgLmJ1dHRvbiwgLmFyY2hpdmVfZmlsdGVyICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5hcmNoaXZlX2ZpbHRlciBhLCAuYXJjaGl2ZV9maWx0ZXIgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmFyY2hpdmVfZmlsdGVyIGEge1xuICAgIG1hcmdpbjogMDsgfVxuXG4ud29vY29tbWVyY2UgLmNhdGVnb3J5LXRpdGxlLCAud29vY29tbWVyY2UtcGFnZSAuY2F0ZWdvcnktdGl0bGUge1xuICBtYXJnaW46IDVyZW0gMCAtNXJlbTtcbiAgcGFkZGluZzogMi4xODc1cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkE2NDAwO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDMxIC8gMjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LFxuLndvb2NvbW1lcmNlIGEuYnV0dG9uLFxuLndvb2NvbW1lcmNlIC5idXR0b24sXG4ud29vY29tbWVyY2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBhLFxuLndvb2NvbW1lcmNlIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG5ib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAud29vY29tbWVyY2UgYSxcbi53b29jb21tZXJjZSAud29vY29tbWVyY2UtcGFnZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlIC5idXR0b24sXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbixcbi53b29jb21tZXJjZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG4jaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAud29vY29tbWVyY2UgYSxcbi53b29jb21tZXJjZSBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlIGEsXG4ud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLCAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQsXG4ud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbixcbi53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYWdlIC5idXR0b24sXG4ud29vY29tbWVyY2UtcGFnZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlLXBhZ2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZS1wYWdlIGEsXG4ud29vY29tbWVyY2UtcGFnZSBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlLXBhZ2UgYSxcbi53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b24sXG4ud29vY29tbWVyY2UtcGFnZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlLXBhZ2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZS1wYWdlIGEsXG4ud29vY29tbWVyY2UtcGFnZSBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLFxuYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlLXBhZ2UgYSxcbi53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQTY0MDAgIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBhLCAud29vY29tbWVyY2UgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlIGEsIC53b29jb21tZXJjZS1wYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1wYWdlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZS1wYWdlIGEsIC53b29jb21tZXJjZS1wYWdlIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZS1wYWdlIGEge1xuICBjb2xvcjogI2ZlZmVmZSAhaW1wb3J0YW50OyB9XG5cbi53b29jb21tZXJjZSAucHJpY2UsIC53b29jb21tZXJjZS1wYWdlIC5wcmljZSB7XG4gIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgLmNvdW50LCAud29vY29tbWVyY2UtcGFnZSAuY291bnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IC5wcm9kdWN0X3RpdGxlLCAud29vY29tbWVyY2UtcGFnZSBkaXYucHJvZHVjdCAucHJvZHVjdF90aXRsZSB7XG4gIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5LCAud29vY29tbWVyY2UtcGFnZSBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSwgLndvb2NvbW1lcmNlLXBhZ2UgZGl2LnByb2R1Y3QgZGl2LmltYWdlcy53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi53b29jb21tZXJjZSAucHJvZHVjdHMgdWwsXG4ud29vY29tbWVyY2UgdWwucHJvZHVjdHMsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCxcbi53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG4gIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCxcbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0LFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDBweCAxcHggMHJlbSAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhLFxuICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6YmVmb3JlLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYTpiZWZvcmUsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6YmVmb3JlLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNzUpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgaW1nLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBpbWcsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgaW1nLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlLFxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSBoMyxcbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC5wcmljZSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgaDMsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIC5wcmljZSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSBoMyxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgLnByaWNlLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBoMyxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAucHJpY2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMS44NzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlLFxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgaDMsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIGgzLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIGgzLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBoMyB7XG4gICAgICAgIGxlZnQ6IDEuODc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVyZW07XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlOmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSBoMzphZnRlcixcbiAgICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgaDM6YWZ0ZXIsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlOmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlOmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIGgzOmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlOmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBoMzphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuMTVzIGVhc2UtaW47IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC5wcmljZSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgLnByaWNlLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIC5wcmljZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSAucHJpY2Uge1xuICAgICAgICByaWdodDogMS44NzVyZW07XG4gICAgICAgIG1heC13aWR0aDogNC4zMTI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyOmJlZm9yZSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGE6aG92ZXI6YmVmb3JlLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyOmJlZm9yZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYTpob3ZlcjpiZWZvcmUge1xuICAgICAgICB0b3A6IDYwJTsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6aG92ZXIgaW1nLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYTpob3ZlciBpbWcsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6aG92ZXIgaW1nLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmhvdmVyIGltZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZTphZnRlcixcbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlOmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6aG92ZXIgaDM6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmhvdmVyIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZTphZnRlcixcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGE6aG92ZXIgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGU6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmhvdmVyIGgzOmFmdGVyLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZTphZnRlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6aG92ZXIgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGU6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyIGgzOmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmhvdmVyIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZTphZnRlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYTpob3ZlciAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZTphZnRlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYTpob3ZlciBoMzphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGEsXG4gICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYSxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIGltZyxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgaW1nLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhIGltZyxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgM3MgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYTpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGE6aG92ZXIsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IGE6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsIGxpLnByb2R1Y3QgYTpob3ZlciBpbWcsXG4gICAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGE6aG92ZXIgaW1nLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBhOmhvdmVyIGltZyxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhOmhvdmVyIGltZyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTsgfVxuICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCAuYnV0dG9uLCAud29vY29tbWVyY2UgLnByb2R1Y3RzICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcm9kdWN0IGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBsaS5wcmltYXJ5IGEsIC53b29jb21tZXJjZSAucHJvZHVjdHMgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgbGkucHJvZHVjdCBhLCAjaGVhZGVyICNtYWluLW1lbnUgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bCBsaS5wcmltYXJ5IGxpLnByb2R1Y3QgYSxcbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAuYnV0dG9uLFxuICAgIC53b29jb21tZXJjZSAjaGVhZGVyICNtYWluLW1lbnUgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBsaS5wcmltYXJ5IGEsXG4gICAgI2hlYWRlciAjbWFpbi1tZW51IC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGxpLnByaW1hcnkgYSxcbiAgICAud29vY29tbWVyY2UgI2hlYWRlciAjbWFpbi1tZW51IHVsLnByb2R1Y3RzIGxpLnByaW1hcnkgbGkucHJvZHVjdCBhLFxuICAgICNoZWFkZXIgI21haW4tbWVudSAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJpbWFyeSBsaS5wcm9kdWN0IGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bCBsaS5wcm9kdWN0IC5idXR0b24sIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJvZHVjdCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJvZHVjdCBsaS5wcmltYXJ5IGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBsaS5wcm9kdWN0IGEsICNoZWFkZXIgI21haW4tbWVudSAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwgbGkucHJpbWFyeSBsaS5wcm9kdWN0IGEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAuYnV0dG9uLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNoZWFkZXIgI21haW4tbWVudSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGxpLnByaW1hcnkgYSxcbiAgICAjaGVhZGVyICNtYWluLW1lbnUgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBsaS5wcmltYXJ5IGEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI2hlYWRlciAjbWFpbi1tZW51IHVsLnByb2R1Y3RzIGxpLnByaW1hcnkgbGkucHJvZHVjdCBhLFxuICAgICNoZWFkZXIgI21haW4tbWVudSAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcmltYXJ5IGxpLnByb2R1Y3QgYSB7XG4gICAgICBtYXJnaW4tdG9wOiAtNGVtO1xuICAgICAgLyogbWFyZ2luLXJpZ2h0OiA1cmVtOyAqL1xuICAgICAgcGFkZGluZy1yaWdodDogLTVyZW07XG4gICAgICBsZWZ0OiAzMHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogNDFweCA5OHB4IDMwMHB4IDE5NHB4IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDQxcHggOThweCAzMDBweCAxOTRweCByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgYm94LXNoYWRvdzogNDFweCA5OHB4IDMwMHB4IDE5NHB4IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cbiAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMSkgYSwgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoMSkgYSxcbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1jaGlsZCgxKSBhLFxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDEpIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMSkgYSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgxKSBhLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMSkgYSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDEpIGEge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgxKSBhLCAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1sYXN0LWNoaWxkKDEpIGEsXG4gIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgxKSBhLFxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMSkgYSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1sYXN0LWNoaWxkKDEpIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgxKSBhLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgxKSBhLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgxKSBhIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2Mi40OTg3NWVtKSB7XG4gICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdCwgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0yIGxpLnByb2R1Y3QsXG4gICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0LCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3QsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdCBhLCAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0IGEsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0yIGxpLnByb2R1Y3QgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdCBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3QgYSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0IGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdCBhLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3QgYSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0yIGxpLnByb2R1Y3QsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1jaGlsZCgyKSBhLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1jaGlsZCgyKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDIpIGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMikgYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMikgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgyKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMikgYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1sYXN0LWNoaWxkKDIpIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1jaGlsZCgybikgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMm4pIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMm4pIGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMm4pIGEge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwuY29sdW1ucy0yIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDJuLTEpIGEsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0yIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDJuLTEpIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTIgbGkucHJvZHVjdDpudGgtY2hpbGQoMm4tMSkgYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMiBsaS5wcm9kdWN0Om50aC1jaGlsZCgybi0xKSBhIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3QsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgyKSBhLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgyKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDIpIGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoMikgYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMikgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgyKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMikgYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1sYXN0LWNoaWxkKDIpIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkgYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgybikgYSxcbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDJuKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDJuKSBhLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgybikgYSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgybi0xKSBhLFxuICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoMm4tMSkgYSwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgybi0xKSBhLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgybi0xKSBhIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0LFxuICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdCwgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0IHtcbiAgICAgIHdpZHRoOiAzMy4zMzMlOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgzKSBhLFxuICAgICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgzKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDMpIGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoMykgYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMykgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtbGFzdC1jaGlsZCgzKSBhLCAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWxhc3QtY2hpbGQoMykgYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1sYXN0LWNoaWxkKDMpIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzIHVsLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgzbikgYSxcbiAgICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoM24pIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoM24pIGEsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoM24pIGEge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDNuLTIpIGEsXG4gICAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy0zIGxpLnByb2R1Y3Q6bnRoLWNoaWxkKDNuLTIpIGEsIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB1bC5jb2x1bW5zLTMgbGkucHJvZHVjdDpudGgtY2hpbGQoM24tMikgYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtMyBsaS5wcm9kdWN0Om50aC1jaGlsZCgzbi0yKSBhIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuXG4ud29vY29tbWVyY2UgPiB1bC5wcm9kdWN0cywgLndvb2NvbW1lcmNlLXBhZ2UgPiB1bC5wcm9kdWN0cyB7XG4gIG1hcmdpbjogNXJlbSAwOyB9XG5cbi5ycC10ZXh0IHtcbiAgY29sb3I6ICNmYTY1MDAgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xuICAvKiBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDsgKi9cbiAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMzFweDsgfVxuXG4ucmVjaXBlIHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZWNpcGUgdWwgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5yZWNpcGUgdWwgbGkgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0OyB9XG5cbi53b29jb21tZXJjZSBhLmJ1dHRvbjpob3ZlciwgLndvb2NvbW1lcmNlIC5idXR0b246aG92ZXIsIC53b29jb21tZXJjZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAud29vY29tbWVyY2UgYTpob3ZlciwgLndvb2NvbW1lcmNlIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBhOmhvdmVyLCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXBhZ2UgLmJ1dHRvbjpob3ZlciwgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlIC5idXR0b246aG92ZXIsXG4ud29vY29tbWVyY2UgLmJ1dHRvbiBhOmhvdmVyLFxuLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEgYTpob3ZlcixcbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBhIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5wcm9kdWN0LWNhdC1idXR0b24ge1xuICBjb2xvcjogIzBiMGIwNyAhaW1wb3J0YW50O1xuICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC42MThlbSAzZW0gIWltcG9ydGFudDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtM2VtICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM5OXB4KSB7XG4gICAgLnByb2R1Y3QtY2F0LWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU1MHB4KSB7XG4gICAgLnByb2R1Y3QtY2F0LWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDsgfSB9XG5cbi5yZXNwb25zaXZlLWVtYmVkLFxuLmZsZXgtdmlkZW8ge1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW9yZGVyaW5nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXJlc3VsdC1jb3VudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLndvb2NvbW1lcmNlLmNvbHVtbnMtMiB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuLnByb2R1Y3QtaDEge1xuICBiYWNrZ3JvdW5kOiAjZmE2NTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMTAwcHg7XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5yZWxhdGVkLXByb2R1Y3RzIHVsIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHB4IDAuMiUgMHJlbSAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnJlbGF0ZWQtcHJvZHVjdHMgLnByaWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxcmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1sZWZ0OiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLnJlbGF0ZWQtcHJvZHVjdHMgLmJ1dHRvbiwgLnJlbGF0ZWQtcHJvZHVjdHMgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnJlbGF0ZWQtcHJvZHVjdHMgYSwgLnJlbGF0ZWQtcHJvZHVjdHMgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnJlbGF0ZWQtcHJvZHVjdHMgYSB7XG4gIG1hcmdpbi10b3A6IC00ZW0gIWltcG9ydGFudDsgfVxuXG4udHh0LWNvbCB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcbiAgbWFyZ2luOiAwcHggMC4yJSAwLjE1cmVtIDAgIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgI2NvbnRlbnQgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMsXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMsXG4ud29vY29tbWVyY2UtcGFnZSAjY29udGVudCBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyxcbi53b29jb21tZXJjZS1wYWdlIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuc2VjdGlvbiNmaWx0ZXJfc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQTY0MDA7IH1cbiAgc2VjdGlvbiNmaWx0ZXJfc2VjdGlvbiAjcmVjaXBlLWxpbmtzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMS44NzVyZW0gMC45Mzc1cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICBzZWN0aW9uI2ZpbHRlcl9zZWN0aW9uICNyZWNpcGUtbGlua3Mge1xuICAgICAgICBwYWRkaW5nOiAxLjg3NXJlbSAwOyB9IH1cbiAgICBzZWN0aW9uI2ZpbHRlcl9zZWN0aW9uICNyZWNpcGUtbGlua3MgYSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gICAgICBwYWRkaW5nOiAwIDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbjogMCAwLjMxMjVyZW07XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBsaW5lYXIsIGNvbG9yIDAuM3MgbGluZWFyOyB9XG4gICAgICBzZWN0aW9uI2ZpbHRlcl9zZWN0aW9uICNyZWNpcGUtbGlua3MgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICBzZWN0aW9uI2ZpbHRlcl9zZWN0aW9uICNyZWNpcGUtbGlua3MgYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICBzZWN0aW9uI2ZpbHRlcl9zZWN0aW9uICNyZWNpcGUtbGlua3MgYS5hY3RpdmUge1xuICAgICAgICBjb2xvcjogI0ZBNjQwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4uY29sdW1uIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnMgLnJlY2lwZS1jYXJkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZy10b3A6IDEwMCU7XG4gIGJvcmRlcjogc29saWQgMXB4O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY29sdW1uIC5yZWNpcGUtY2FyZDpiZWZvcmUsIC5jb2x1bW5zIC5yZWNpcGUtY2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjc1KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfVxuICAuY29sdW1uIC5yZWNpcGUtY2FyZCAuaW1nLXdyYXAsIC5jb2x1bW5zIC5yZWNpcGUtY2FyZCAuaW1nLXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgei1pbmRleDogLTE7IH1cbiAgICAuY29sdW1uIC5yZWNpcGUtY2FyZCAuaW1nLXdyYXAgLmltZy1vYmosIC5jb2x1bW5zIC5yZWNpcGUtY2FyZCAuaW1nLXdyYXAgLmltZy1vYmoge1xuICAgICAgdG9wOiAwOyB9XG4gIC5jb2x1bW4gLnJlY2lwZS1jYXJkIC5jb250ZW50LCAuY29sdW1ucyAucmVjaXBlLWNhcmQgLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAxLjU2MjVyZW0gMS44NzVyZW07IH1cbiAgICAuY29sdW1uIC5yZWNpcGUtY2FyZCAuY29udGVudCBoMywgLmNvbHVtbnMgLnJlY2lwZS1jYXJkIC5jb250ZW50IGgzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwIDAgMC4zNzVyZW07XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLmNvbHVtbiAucmVjaXBlLWNhcmQgLmNvbnRlbnQgaDM6YWZ0ZXIsIC5jb2x1bW5zIC5yZWNpcGUtY2FyZCAuY29udGVudCBoMzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjE1cyBlYXNlLWluOyB9XG4gICAgLmNvbHVtbiAucmVjaXBlLWNhcmQgLmNvbnRlbnQgLnJlY2lwZS1kZXRhaWxzLCAuY29sdW1ucyAucmVjaXBlLWNhcmQgLmNvbnRlbnQgLnJlY2lwZS1kZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jb2x1bW4gLnJlY2lwZS1jYXJkIC5jb250ZW50IC5yZWNpcGUtZGV0YWlscyBwLCAuY29sdW1ucyAucmVjaXBlLWNhcmQgLmNvbnRlbnQgLnJlY2lwZS1kZXRhaWxzIHAge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgfVxuICAgICAgICAuY29sdW1uIC5yZWNpcGUtY2FyZCAuY29udGVudCAucmVjaXBlLWRldGFpbHMgcCAuc2VwYXJhdG9yLCAuY29sdW1ucyAucmVjaXBlLWNhcmQgLmNvbnRlbnQgLnJlY2lwZS1kZXRhaWxzIHAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNjI1cmVtO1xuICAgICAgICAgIGNvbG9yOiAjRkE2NDAwOyB9XG4gICAgICAuY29sdW1uIC5yZWNpcGUtY2FyZCAuY29udGVudCAucmVjaXBlLWRldGFpbHMgLnJlY2lwZS1pY29ucywgLmNvbHVtbnMgLnJlY2lwZS1jYXJkIC5jb250ZW50IC5yZWNpcGUtZGV0YWlscyAucmVjaXBlLWljb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gICAgICAgIC5jb2x1bW4gLnJlY2lwZS1jYXJkIC5jb250ZW50IC5yZWNpcGUtZGV0YWlscyAucmVjaXBlLWljb25zIC5pY29uLCAuY29sdW1ucyAucmVjaXBlLWNhcmQgLmNvbnRlbnQgLnJlY2lwZS1kZXRhaWxzIC5yZWNpcGUtaWNvbnMgLmljb24ge1xuICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICBtYXJnaW46IDAgNXB4OyB9XG4gIC5jb2x1bW4gLnJlY2lwZS1jYXJkOmhvdmVyOmJlZm9yZSwgLmNvbHVtbnMgLnJlY2lwZS1jYXJkOmhvdmVyOmJlZm9yZSB7XG4gICAgdG9wOiA2MCU7IH1cbiAgLmNvbHVtbiAucmVjaXBlLWNhcmQ6aG92ZXIgLmltZy13cmFwLCAuY29sdW1ucyAucmVjaXBlLWNhcmQ6aG92ZXIgLmltZy13cmFwIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpOyB9XG4gIC5jb2x1bW4gLnJlY2lwZS1jYXJkOmhvdmVyIC5jb250ZW50IGgzOmFmdGVyLCAuY29sdW1ucyAucmVjaXBlLWNhcmQ6aG92ZXIgLmNvbnRlbnQgaDM6YWZ0ZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cblxuLmNvbHVtbjpudGgtY2hpbGQoMSkgLnJlY2lwZS1jYXJkLCAuY29sdW1uczpudGgtY2hpbGQoMSkgLnJlY2lwZS1jYXJkIHtcbiAgYm9yZGVyLXRvcDogMDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gIC5jb2x1bW46bnRoLWNoaWxkKDIpIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnM6bnRoLWNoaWxkKDIpIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5jb2x1bW46bnRoLWNoaWxkKDMpIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnM6bnRoLWNoaWxkKDMpIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbi5jb2x1bW46bnRoLWxhc3QtY2hpbGQoMSkgLnJlY2lwZS1jYXJkLCAuY29sdW1uczpudGgtbGFzdC1jaGlsZCgxKSAucmVjaXBlLWNhcmQge1xuICBib3JkZXItYm90dG9tOiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgLmNvbHVtbjpudGgtbGFzdC1jaGlsZCgyKSAucmVjaXBlLWNhcmQsIC5jb2x1bW5zOm50aC1sYXN0LWNoaWxkKDIpIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5jb2x1bW46bnRoLWxhc3QtY2hpbGQoMykgLnJlY2lwZS1jYXJkLCAuY29sdW1uczpudGgtbGFzdC1jaGlsZCgzKSAucmVjaXBlLWNhcmQge1xuICAgIGJvcmRlci1ib3R0b206IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjIuNDk4NzVlbSkge1xuICAuY29sdW1uIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnMgLnJlY2lwZS1jYXJkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuY29sdW1uOm50aC1jaGlsZCgybikgLnJlY2lwZS1jYXJkLCAuY29sdW1uczpudGgtY2hpbGQoMm4pIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5jb2x1bW46bnRoLWNoaWxkKDJuLTEpIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnM6bnRoLWNoaWxkKDJuLTEpIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuY29sdW1uOm50aC1jaGlsZCgzbikgLnJlY2lwZS1jYXJkLCAuY29sdW1uczpudGgtY2hpbGQoM24pIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5jb2x1bW46bnRoLWNoaWxkKDNuLTIpIC5yZWNpcGUtY2FyZCwgLmNvbHVtbnM6bnRoLWNoaWxkKDNuLTIpIC5yZWNpcGUtY2FyZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuXG4jaGVyby5yZWNpcGUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICNoZXJvLnJlY2lwZSB7XG4gICAgICBtaW4taGVpZ2h0OiA4MHZoOyB9IH1cbiAgI2hlcm8ucmVjaXBlIC5pbWctY29sIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVyby5yZWNpcGUgLmltZy1jb2wge1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICNoZXJvLnJlY2lwZSAuY29sdW1uIC5pbWctd3JhcCwgI2hlcm8ucmVjaXBlIC5jb2x1bW5zIC5pbWctd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgI2hlcm8ucmVjaXBlIC5jb2x1bW4gLmltZy13cmFwLCAjaGVyby5yZWNpcGUgLmNvbHVtbnMgLmltZy13cmFwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgICNoZXJvLnJlY2lwZSAuY29sdW1uIC5pbWctd3JhcCAuaW1nLW9iaiwgI2hlcm8ucmVjaXBlIC5jb2x1bW5zIC5pbWctd3JhcCAuaW1nLW9iaiB7XG4gICAgICB0b3A6IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAjaGVyby5yZWNpcGUgLmNvbHVtbiAuaW1nLXdyYXAsICNoZXJvLnJlY2lwZSAuY29sdW1ucyAuaW1nLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHJpZ2h0OiAwOyB9IH1cbiAgI2hlcm8ucmVjaXBlIC5jb250ZW50IHtcbiAgICBtYXJnaW46IDQuMzc1cmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAjaGVyby5yZWNpcGUgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDcuNXJlbSAwIDEwLjQzNzVyZW07IH0gfVxuICAjaGVyby5yZWNpcGUgYS5yZWNpcGVfYmFja19idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1pbiAwLjE1czsgfVxuICAgICNoZXJvLnJlY2lwZSBhLnJlY2lwZV9iYWNrX2J1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFwwMjE5MFwiO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDsgfVxuICAgICNoZXJvLnJlY2lwZSBhLnJlY2lwZV9iYWNrX2J1dHRvbjpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAjaGVyby5yZWNpcGUgLnByZXRpdGxlIHtcbiAgICBjb2xvcjogI0ZBNjQwMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICNoZXJvLnJlY2lwZSAucHJldGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNS42MjVyZW07IH0gfVxuICAjaGVyby5yZWNpcGUgLnRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0ZBNjQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4wNjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAjaGVyby5yZWNpcGUgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAzLjc1cmVtOyB9IH1cbiAgICAjaGVyby5yZWNpcGUgLnRpdGxlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7IH1cbiAgI2hlcm8ucmVjaXBlIHAge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS45Mzc1cmVtOyB9XG4gICAgI2hlcm8ucmVjaXBlIHAgLnNlcGFyYXRvciB7XG4gICAgICBtYXJnaW46IDAgMC42MjVyZW07XG4gICAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAgICNoZXJvLnJlY2lwZSBwIC5zaGFyZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiA0LjYyNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiAjRkE2NDAwOyB9XG4gICAgICAjaGVyby5yZWNpcGUgcCAuc2hhcmUgc3BhbiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTsgfVxuICAgICAgI2hlcm8ucmVjaXBlIHAgLnNoYXJlIGEge1xuICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTsgfVxuICAgICAgICAjaGVyby5yZWNpcGUgcCAuc2hhcmUgYSBzdmcge1xuICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAgIGZpbGw6ICNmZWZlZmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47IH1cbiAgICAgICAgI2hlcm8ucmVjaXBlIHAgLnNoYXJlIGE6aG92ZXIgc3ZnIHtcbiAgICAgICAgICBjb2xvcjogI0ZBNjQwMDtcbiAgICAgICAgICBmaWxsOiAjRkE2NDAwOyB9XG5cbnNlY3Rpb24jcmVsYXRlZC1yZWNpcGVzIHtcbiAgYmFja2dyb3VuZDogI0ZBNjQwMDsgfVxuICBzZWN0aW9uI3JlbGF0ZWQtcmVjaXBlcyAucm93OmZpcnN0LWNoaWxkIGgyIHtcbiAgICBtYXJnaW46IDIuMTg3NXJlbSAwO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDA5MDkwOTA5MTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnJlY2lwZS1hcmNoIHtcbiAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLnJlY2lwZS1hcmNoIGxpIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjIuNDk4NzVlbSkge1xuICAgICAgLnJlY2lwZS1hcmNoIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4OyB9IH1cbiAgLnJlY2lwZS1hcmNoIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDsgfVxuXG4ucmVjaXBlLWFyY2ggdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxuXG4uaWNvbnMgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pY29ucyBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmljb25zIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDsgfVxuXG4uaW5ncmUtdGV4dCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gIC5pbmdyZS10ZXh0IHVsIHtcbiAgICBtYXJnaW46IDEuMjVyZW0gMCAwOyB9XG5cbi5pbmdyZWRpZW50LWRpdiB7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNlMmU0ZTc7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAuaW5ncmVkaWVudC1kaXYge1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IH0gfVxuXG4ucmVjaXBlLXBhZC10b3Age1xuICBwYWRkaW5nOiA0cmVtIDA7IH1cbiAgLnJlY2lwZS1wYWQtdG9wIC50ZXh0LWxlZnQge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gIC5yZWNpcGUtcGFkLXRvcCBwIHtcbiAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gIC5yZWNpcGUtcGFkLXRvcCBiIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDsgfVxuICAucmVjaXBlLXBhZC10b3AgbGkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwLjhyZW0gMS4ycmVtICFpbXBvcnRhbnQ7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAucmVjaXBlLXBhZC10b3AgbGkgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cblxuLnJlY2lwZXMgdWwge1xuICBtYXJnaW4tbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucmVjaXBlLWxlZnQtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDE4cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMjJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxODAycHgpIHtcbiAgLnJlY2lwZS1sZWZ0LXRleHQge1xuICAgIHBhZGRpbmctdG9wOiAxNnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTcwOHB4KSB7XG4gIC5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMTJyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxNnJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1NjRweCkge1xuICAucmVjaXBlLWxlZnQtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDExcmVtO1xuICAgIHBhZGRpbmctbGVmdDogNy41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI1MHB4KSB7XG4gIC5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDlyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk4cHgpIHtcbiAgLnJlY2lwZS1sZWZ0LXRleHQge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MHB4KSB7XG4gIC5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH0gfVxuXG4uc2hhcmUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDJyZW0gMCAwIDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnNoYXJlIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDAgMC41cmVtIDAgMDsgfVxuICAgIC5zaGFyZSBsaSBhIHtcbiAgICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgICAgZm9udC1zaXplOiAxNzAlOyB9XG4gICAgICAuc2hhcmUgbGkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5yZWNpcGUtbGkge1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZTFlNGU3O1xuICB3aWR0aDogODUlOyB9XG4gIC5yZWNpcGUtbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IH1cblxuLnJlY2lwZSB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnNpbmdsZS1yZWNpcGUtaW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDsgfSB9XG5cbi5yZWxhdGVkLXJlY2lwZXMgdWwge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxLjg3NXJlbTtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBkaXYucHJvZHVjdCBkaXYuc3VtbWFyeSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWF4LXdpZHRoOiAzNS4zMTI1cmVtO1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICBwYWRkaW5nLXRvcDogNy41cmVtOyB9IH1cbiAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkgLnByb2R1Y3RfdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI2ZlZmVmZSAhaW1wb3J0YW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZy1ib3R0b206IDIuMDYyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBkaXYucHJvZHVjdCBkaXYuc3VtbWFyeSAucHJvZHVjdF90aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy43NXJlbTsgfSB9XG4gICAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkgLnByb2R1Y3RfdGl0bGU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgYmFja2dyb3VuZDogI0ZBNjQwMDsgfVxuICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBkaXYucHJvZHVjdCBkaXYuc3VtbWFyeSAuc2luZ2xlLXByaWNlIHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7IH1cbiAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkgLnByb2R1Y3QtZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IGRpdi5wcm9kdWN0IGRpdi5zdW1tYXJ5IC5wcm9kdWN0LWRlc2NyaXB0aW9uIHAge1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkgLmF0dHJpYnV0ZXMge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IGZvcm0uY2FydCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDsgfVxuICAgIC53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyB0Ym9keSB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgdGJvZHkgdHIgdGQsIC53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyB0Ym9keSB0ciB0aCB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRib2R5IHRyIHRkLmxhYmVsLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgdGJvZHkgdHIgdGQgbGFiZWwsIC53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyB0Ym9keSB0ciB0aC5sYWJlbCxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRib2R5IHRyIHRoIGxhYmVsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi4wNTsgfVxuICAgICAgICAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgdGJvZHkgdHIgdGQgc2VsZWN0LCAud29vY29tbWVyY2UtcGFnZS5zaW5nbGUtcHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgdGJvZHkgdHIgdGggc2VsZWN0IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLndvb2NvbW1lcmNlLXBhZ2Uuc2luZ2xlLXByb2R1Y3QgLnByb2R1Y3RfbWV0YSB7XG4gIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IC5wcm9kdWN0X21ldGEgLnNrdV93cmFwcGVyIHtcbiAgICBvcGFjaXR5OiAwLjQ7IH1cblxuLnhvby1jcC1hdGNuIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnhvby1jcC1wdGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC54b28tY3AtcHRpdGxlIGEge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi53b29jb21tZXJjZS1QcmljZS1jdXJyZW5jeVN5bWJvbCB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG5zcGFuLnhjcC1wbHVzLCBzcGFuLnhjcC1taW51cyB7XG4gIHdpZHRoOiAyMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4ueG9vLWNwLXB0b3RhbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgZGl2LnF1YW50aXR5IHtcbiAgbWFyZ2luOiAwcHggMjBweCAwIDA7IH1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAuYnV0dG9uLCAud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgYSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogOTAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi53b29jb21tZXJjZSAucXVhbnRpdHkgLnF0eSB7XG4gIHdpZHRoOiAzLjYzMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XG5cbi5yZWxhdGVkLnByb2R1Y3RzLFxuLnVwc2VsbHMucHJvZHVjdHMge1xuICBjbGVhcjogYm90aDsgfVxuICAucmVsYXRlZC5wcm9kdWN0cyA+IGgyLFxuICAudXBzZWxscy5wcm9kdWN0cyA+IGgyIHtcbiAgICBiYWNrZ3JvdW5kOiAjRkE2NDAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwcHg7XG4gICAgbWFyZ2luLXRvcDogMHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnJlbGF0ZWQucHJvZHVjdHMgLnByb2R1Y3RzLFxuICAudXBzZWxscy5wcm9kdWN0cyAucHJvZHVjdHMge1xuICAgIG1hcmdpbjogMDsgfVxuXG4ud29vY29tbWVyY2UgYS5hZGRlZF90b19jYXJ0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ueG9vLWNwLWFkZGVkLCAueG9vLWNwLWFkZGluZyB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnJlY2lwZS1zZWN0aW9uIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogOTAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7IH1cblxuLnJlY2lwZS1zZWN0aW9uIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEge1xuICBtYXJnaW4tdG9wOiAycmVtICAhaW1wb3J0YW50OyB9XG5cbi5zaW5nbGUtcHJvZHVjdCAuZmxleC1jb250cm9sLW5hdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcmVtO1xuICBsZWZ0OiA0NSU7IH1cbiAgLnNpbmdsZS1wcm9kdWN0IC5mbGV4LWNvbnRyb2wtbmF2IGxpIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTsgfVxuICAgIC5zaW5nbGUtcHJvZHVjdCAuZmxleC1jb250cm9sLW5hdiBsaSBhIHtcbiAgICAgIG9wYWNpdHk6IC0yLjQ7IH1cblxuc2VjdGlvbi5jdGEge1xuICBwYWRkaW5nOiA1LjMxMjVyZW0gMDtcbiAgYmFja2dyb3VuZDogI0ZBNjQwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIHNlY3Rpb24uY3RhIC5wcmV0aXRsZSwgc2VjdGlvbi5jdGEgaDIsIHNlY3Rpb24uY3RhIC5idXR0b24sIHNlY3Rpb24uY3RhICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IHNlY3Rpb24uY3RhIGEsIHNlY3Rpb24uY3RhIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsIGJvZHkuc2Nyb2xsZWQgI2hlYWRlci5kYXJrLXRleHQgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IHNlY3Rpb24uY3RhIGEge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgc2VjdGlvbi5jdGEgLnByZXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICBzZWN0aW9uLmN0YSBoMiB7XG4gICAgbWFyZ2luOiAwIDAgMS44NzVyZW07XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMzMzMzMzMzMzOyB9XG5cbi53b29jb21tZXJjZSAuY29sdW1ucy00IHtcbiAgbWFyZ2luOiAwcHg7XG4gIG1hcmdpbi10b3A6IDEwcmVtO1xuICBtYXJnaW4tYm90dG9tOiA1cmVtOyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAucHJvZHVjdF90aXRsZSB7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogNTZweDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X190cmlnZ2VyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC5idXR0b246aG92ZXIsIC53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlciwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydCBhOmhvdmVyLCAud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGE6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC5yZXNldF92YXJpYXRpb25zIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICAhaW1wb3J0YW50OyB9XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgc2VsZWN0IHtcbiAgbWF4LXdpZHRoOiA2NSUgIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgcC5zdG9jayB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbmJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UsXG5ib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSxcbmJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2Uge1xuICBwYWRkaW5nOiAxLjI1cmVtIDA7IH1cbiAgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSBoMiwgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSBoMyxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgaDIsXG4gIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlIGgzLFxuICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIGgyLFxuICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIGgzIHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAxLjI1cmVtOyB9XG4gIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZSxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZSxcbiAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSB0YWJsZS5zaG9wX3RhYmxlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItc3BhY2luZzogMDsgfVxuICBib2R5Lndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIHRhYmxlIHRoZWFkLFxuICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSB0YWJsZSB0aGVhZCxcbiAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSB0YWJsZSB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgdGFibGUgdHIgdGgsXG4gIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlIHRhYmxlIHRyIHRoLFxuICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIHRhYmxlIHRyIHRoIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgdGFibGUgdHIgdGQgYSxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgdGFibGUgdHIgdGQgYSxcbiAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSB0YWJsZSB0ciB0ZCBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgdGFibGUgdHIgdGQgYTpob3ZlcixcbiAgICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSB0YWJsZSB0ciB0ZCBhOmhvdmVyLFxuICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgdGFibGUgdHIgdGQgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBib2R5Lndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIHRhYmxlIHRyIHRkIHNwYW4sXG4gIGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlIHRhYmxlIHRyIHRkIHNwYW4sXG4gIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgdGFibGUgdHIgdGQgc3BhbiB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSAucHJvZHVjdC1xdWFudGl0eSxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHksXG4gIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHksXG4gICAgICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSAucHJvZHVjdC1xdWFudGl0eSxcbiAgICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAgIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHkgLnF0eSxcbiAgICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSAucHJvZHVjdC1xdWFudGl0eSAucXR5LFxuICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLnByb2R1Y3QtcXVhbnRpdHkgLnF0eSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSBzdHJvbmcucHJvZHVjdC1xdWFudGl0eSxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2Ugc3Ryb25nLnByb2R1Y3QtcXVhbnRpdHksXG4gIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2Ugc3Ryb25nLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgYSxcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgLmJ1dHRvbixcbiAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSxcbiAgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgYSxcbiAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAuYnV0dG9uLFxuICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsXG4gICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogc29saWQgMXB4ICMwMDAwMDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIGJvZHkud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgLmJ1dHRvbjpob3ZlciwgYm9keS53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBib2R5Lndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIGE6aG92ZXIsXG4gICAgYm9keS53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgLmJ1dHRvbjpob3ZlcixcbiAgICBib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLFxuICAgICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlIGE6aG92ZXIsXG4gICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAuYnV0dG9uOmhvdmVyLFxuICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpob3ZlcixcbiAgICAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS53cG1lbnVjYXJ0bGkgYS53cG1lbnVjYXJ0LWNvbnRlbnRzOmhvdmVyIHtcbiAgY29sb3I6ICNGQTY0MDA7XG4gIG9wYWNpdHk6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4jc2FnZXBheWRpcmVjdC1jYy1mb3JtIC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSxcbiNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLFxuI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnksXG4jYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlcixcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yyxcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlcixcbi53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlciB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG4jYWRkX3BheW1lbnRfbWV0aG9kIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0LFxuLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQge1xuICBtaW4td2lkdGg6IDEwcmVtOyB9XG5cbi53b29jb21tZXJjZS1lcnJvcixcbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICBib3JkZXItdG9wLWNvbG9yOiAjRkE2NDAwOyB9XG4gIC53b29jb21tZXJjZS1lcnJvcjpiZWZvcmUsXG4gIC53b29jb21tZXJjZS1pbmZvOmJlZm9yZSxcbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2U6YmVmb3JlIHtcbiAgICBjb2xvcjogI0ZBNjQwMDsgfVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuICBwYWRkaW5nOiAyLjVyZW0gMDsgfVxuICAud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUgcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB1bCB7XG4gICAgbWFyZ2luOiAyLjVyZW0gYXV0bztcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTYuODc1cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB1bCBsaSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjdmNmY3OyB9XG4gICAgICAud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUgdWwgbGkgYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTBweCAzMHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlIHVsIGxpIGE6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAycHggI0ZBNjQwMDtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfVxuICAgICAgICAud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUgdWwgbGkgYTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMnB4IDRweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgICAgIC53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB1bCBsaSBhOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgb3BhY2l0eTogMC42NzsgfVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUgfiAud29vY29tbWVyY2UtY2hlY2tvdXQsXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUgfiAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5mb3JtLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNjdXN0b21lcl9kZXRhaWxzID4gZGl2IHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZsb2F0OiBub25lOyB9XG5cbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQgI2N1c3RvbWVyX2RldGFpbHMgI2JpbGxpbmdfY29tcGFueV9maWVsZCxcbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQgI2N1c3RvbWVyX2RldGFpbHMgI3NoaXBwaW5nX2NvbXBhbnlfZmllbGQsXG5mb3JtLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNjdXN0b21lcl9kZXRhaWxzICNvcmRlcl9jb21tZW50c19maWVsZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuZm9ybS53b29jb21tZXJjZS1jaGVja291dCAjY3VzdG9tZXJfZGV0YWlscyAjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQsIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgYS5idXR0b24sIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLmJ1dHRvbiwgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLndvb2NvbW1lcmNlIGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgYSwgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcGFnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtcGFnZSBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIC5idXR0b24sIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbiwgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAuYnV0dG9uLCBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgYSwgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBpbnB1dC5idXR0b24ge1xuICAgIHBhZGRpbmc6IDAuNmVtIDFlbSAwLjRlbTsgfVxuICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgbmF2Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTEuMjVyZW07IH0gfVxuICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgbmF2Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGxpIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSA3NSUsIHJnYmEoMCwgMCwgMCwgMC4xKSAxMDAlKTsgfVxuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gICAgICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgbmF2Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGxpIGE6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG4gICAgICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTsgfVxuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfVxuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZG93bmxvYWRzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkuaXMtYWN0aXZlIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRkE2NDAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxuICAgICAgICBib2R5Lndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaS5pcy1hY3RpdmUgYTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDEwcHggMCAxMHB4IDE1cHg7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjRkE2NDAwOyB9XG4gIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTsgfSB9XG4gICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQgaDIsIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IGgzIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQgLndvb2NvbW1lcmNlLUFkZHJlc3Mge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweDsgfVxuICAgICAgYm9keS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQgLndvb2NvbW1lcmNlLUFkZHJlc3MgaDIsIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IC53b29jb21tZXJjZS1BZGRyZXNzIGgzIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMy4xMjVyZW07IH1cbiAgICAgIGJvZHkud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IC53b29jb21tZXJjZS1BZGRyZXNzIC5lZGl0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMS4yNXJlbTsgfVxuXG4jY3VzdG9tZXJfbG9naW4ge1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAjY3VzdG9tZXJfbG9naW4gZm9ybSAuZm9ybS1yb3cgbGFiZWwge1xuICAgIHBhZGRpbmc6IDAuNWVtIDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgI2N1c3RvbWVyX2xvZ2luIGgyLCAjY3VzdG9tZXJfbG9naW4gZm9ybSwgI2N1c3RvbWVyX2xvZ2luIGlucHV0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgI2N1c3RvbWVyX2xvZ2luIGgyIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgI2N1c3RvbWVyX2xvZ2luIGZvcm0gLnBhc3N3b3JkLWlucHV0IGlucHV0W3R5cGU9cGFzc3dvcmRdIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07IH1cbiAgI2N1c3RvbWVyX2xvZ2luIC53b29jb21tZXJjZS1mb3JtLWxvZ2luX19zdWJtaXQsXG4gICNjdXN0b21lcl9sb2dpbiAud29vY29tbWVyY2UtZm9ybS1yZWdpc3Rlcl9fc3VibWl0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAuOTM3NXJlbSBhdXRvOyB9XG4gICNjdXN0b21lcl9sb2dpbi5yZWdpc3Rlci1vbmx5ID4gZGl2LCAjY3VzdG9tZXJfbG9naW4ubG9naW4tb25seSA+IGRpdiB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgI2N1c3RvbWVyX2xvZ2luLnJlZ2lzdGVyLW9ubHkgLmNvbC0xIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNjdXN0b21lcl9sb2dpbi5sb2dpbi1vbmx5IC5jb2wtMiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSB7XG4gIC8qIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuICovIH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmltZy1jb2wsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC52aWRlby1jb2wgLnRleHQtY29sIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuaW1nLWNvbCBpbWcsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC52aWRlby1jb2wgLnRleHQtY29sIGltZyB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgM3MgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmltZy1jb2wgYTpob3ZlciBpbWcsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC52aWRlby1jb2wgLnRleHQtY29sIGE6aG92ZXIgaW1nIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMSk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5jb2x1bW46bm90KDpvbmx5LWNoaWxkKS50eHQtY29sLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuY29sdW1uczpub3QoOm9ubHktY2hpbGQpLnR4dC1jb2wge1xuICAgICAgbWF4LXdpZHRoOiA1Ni4yNXJlbTtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuY29sdW1uOm5vdCg6b25seS1jaGlsZCkudHh0LWNvbDpmaXJzdC1jaGlsZCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmNvbHVtbnM6bm90KDpvbmx5LWNoaWxkKS50eHQtY29sOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnJvdy5ydGwgLnR4dC1jb2wge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAucm93LnJ0bCAudHh0LWNvbDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgaDMge1xuICAgIGZvbnQtZmFtaWx5OiBCcmFuZG9uLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW46IDFyZW0gMCAxcmVtOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgaDMucHJldGl0bGUge1xuICAgICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuYmctcHJpbWFyeSBoMy5wcmV0aXRsZSwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmJnLXByaW1hcnkgaDMucHJldGl0bGUge1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5idXR0b24sIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIGEge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LWZhbWlseTogQnJhbmRvbiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMXJlbSAwIDFyZW07IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuYnV0dG9uOmZvY3VzLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuYnV0dG9uOmhvdmVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhOmhvdmVyLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmJ1dHRvbi5wcmltYXJ5LCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnksICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIGEucHJpbWFyeSB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZvbnQtZmFtaWx5OiBCcmFuZG9uLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luOiAxcmVtIDAgMXJlbTsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5idXR0b24ucHJpbWFyeTpmb2N1cywgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYS5wcmltYXJ5OmZvY3VzLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBhLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLnByaW1hcnk6aG92ZXIsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIGEucHJpbWFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnJlc3BvbnNpdmUtZW1iZWQsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5mbGV4LXZpZGVvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAudHh0LWNvbCB7XG4gICAgICBwYWRkaW5nOiA2cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC50eHQtY29sLmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJvcmRlci1yaWdodDogc29saWQgNTBweCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCA1MHB4IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgNTBweCAjRkE2NDAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbC5leHBhbmRlZCAuY29sdW1uLm1lZGl1bS02LCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5tZWRpdW0tNi5jb2x1bW5zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5jb2x1bW4ubWVkaXVtLTYsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLm1lZGl1bS02LmNvbHVtbnMge1xuICAgICAgICBwYWRkaW5nOiA2cmVtIDZyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5jb2x1bW4ubWVkaXVtLTYsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLm1lZGl1bS02LmNvbHVtbnMge1xuICAgICAgICBwYWRkaW5nOiA1MCUgMCAwO1xuICAgICAgICAvKiAxOjEgQXNwZWN0IFJhdGlvICovIH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5jb2x1bW4ubWVkaXVtLTYgLnR4dC1jb2wsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLm1lZGl1bS02LmNvbHVtbnMgLnR4dC1jb2wge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbC5leHBhbmRlZCAuY29sdW1uLm1lZGl1bS02IC50eHQtY29sIHAsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLm1lZGl1bS02LmNvbHVtbnMgLnR4dC1jb2wgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLmNvbHVtbi5tZWRpdW0tNiAuaW1nLWNvbCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbC5leHBhbmRlZCAubWVkaXVtLTYuY29sdW1ucyAuaW1nLWNvbCB7XG4gICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5jb2x1bW4ubWVkaXVtLTYgLmltZy1jb2wsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wuZXhwYW5kZWQgLm1lZGl1bS02LmNvbHVtbnMgLmltZy1jb2wge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbC5leHBhbmRlZCAuY29sdW1uLm1lZGl1bS02IC5pbWctY29sLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5tZWRpdW0tNi5jb2x1bW5zIC5pbWctY29sIHtcbiAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sLmV4cGFuZGVkIC5jb2x1bW4ubWVkaXVtLTYgLnZpZGVvLWNvbCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbC5leHBhbmRlZCAubWVkaXVtLTYuY29sdW1ucyAudmlkZW8tY29sIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5tZWRpdW0tNi5jb2x1bW5zOm50aC1jaGlsZCgyKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKTphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMik6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDQwcHggMzBweCA0MHB4IDA7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMik6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLXByaW1hcnk6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLXByaW1hcnk6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjRkE2NDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKS5iZy1zZWNvbmRhcnk6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLXNlY29uZGFyeTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLXN1Y2Nlc3M6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLXN1Y2Nlc3M6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjOEFCRDI0IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKS5iZy13YXJuaW5nOmFmdGVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5tZWRpdW0tNi5jb2x1bW5zOm50aC1jaGlsZCgyKS5iZy13YXJuaW5nOmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmYWUwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctYWxlcnQ6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLWFsZXJ0OmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2NjNGIzNyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctbGlnaHQtZ3JheTphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctbGlnaHQtZ3JheTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNGQkZCRkMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLW1lZGl1bS1ncmF5OmFmdGVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5tZWRpdW0tNi5jb2x1bW5zOm50aC1jaGlsZCgyKS5iZy1tZWRpdW0tZ3JheTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNjMWMxZDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLWRhcmstZ3JheTphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctZGFyay1ncmF5OmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzU0NTQ3MSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctYmxhY2s6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLWJsYWNrOmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctd2hpdGU6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLXdoaXRlOmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMik6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMik6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgYm9yZGVyLXdpZHRoOiA0MHB4IDAgNDBweCAzMHB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZlZmVmZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMik6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMik6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLXByaW1hcnk6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctcHJpbWFyeTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjRkE2NDAwOyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKS5iZy1zZWNvbmRhcnk6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctc2Vjb25kYXJ5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLXN1Y2Nlc3M6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctc3VjY2VzczphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOEFCRDI0OyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKS5iZy13YXJuaW5nOmFmdGVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLXdhcm5pbmc6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmYWUwMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctYWxlcnQ6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctYWxlcnQ6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2NjNGIzNzsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctbGlnaHQtZ3JheTphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5tZWRpdW0tNi5jb2x1bW5zOm50aC1jaGlsZCgyKS5iZy1saWdodC1ncmF5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNGQkZCRkM7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLW1lZGl1bS1ncmF5OmFmdGVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLm1lZGl1bS02LmNvbHVtbnM6bnRoLWNoaWxkKDIpLmJnLW1lZGl1bS1ncmF5OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjMWMxZDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5jb2x1bW4ubWVkaXVtLTY6bnRoLWNoaWxkKDIpLmJnLWRhcmstZ3JheTphZnRlciwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEuaGFzLW1lZGlhLWNvbCAucnRsIC5tZWRpdW0tNi5jb2x1bW5zOm50aC1jaGlsZCgyKS5iZy1kYXJrLWdyYXk6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzU0NTQ3MTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctYmxhY2s6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctYmxhY2s6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMDAwMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5oYXMtbWVkaWEtY29sIC5ydGwgLmNvbHVtbi5tZWRpdW0tNjpudGgtY2hpbGQoMikuYmctd2hpdGU6YWZ0ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLmhhcy1tZWRpYS1jb2wgLnJ0bCAubWVkaXVtLTYuY29sdW1uczpudGgtY2hpbGQoMikuYmctd2hpdGU6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZlZmVmZTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYS5ub3QtZXhwYW5kZWQge1xuICAgIHBhZGRpbmc6IDYuMjVyZW0gMDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhLm5vdC1leHBhbmRlZCArIC5ub3QtZXhwYW5kZWQge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnByZXRpdGxlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTtcbiAgICBmb250LWZhbWlseTogQnJhbmRvbiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5ib3R0b20ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjVweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnBhZC10b3Age1xuICAgICAgcGFkZGluZzogMzBweCAwcHg7IH0gfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7XG4gICAgaGVpZ2h0OiAuNHJlbTtcbiAgICBtYXgtd2lkdGg6IDhyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBwIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIwIC8gMjg7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmFsaWdubm9uZSB7XG4gICAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmFsaWduY2VudGVyLFxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBkaXYuYWxpZ25jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLmFsaWducmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDVweCAwIDIwcHggMjBweDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAuYWxpZ25sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBhIGltZy5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgYSBpbWcuYWxpZ25ub25lIHtcbiAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSBhIGltZy5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwOyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIGEgaW1nLmFsaWduY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLndwLWNhcHRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICBtYXgtd2lkdGg6IDk2JTtcbiAgICAvKiBJbWFnZSBkb2VzIG5vdCBvdmVyZmxvdyB0aGUgY29udGVudCBhcmVhICovXG4gICAgcGFkZGluZzogNXB4IDNweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAud3AtY2FwdGlvbi5hbGlnbm5vbmUge1xuICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwOyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC53cC1jYXB0aW9uLmFsaWdubGVmdCB7XG4gICAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gICAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLndwLWNhcHRpb24gaW1nIHtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogOTguNSU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5nZW5lcmFsLWNvbnRlbnQtYXJlYSAud3AtY2FwdGlvbiBwLndwLWNhcHRpb24tdGV4dCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDRweCA1cHg7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgLyogTWFueSBzY3JlZW4gcmVhZGVyIGFuZCBicm93c2VyIGNvbWJpbmF0aW9ucyBhbm5vdW5jZSBicm9rZW4gd29yZHMgYXMgdGhleSB3b3VsZCBhcHBlYXIgdmlzdWFsbHkuICovIH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ2VuZXJhbC1jb250ZW50LWFyZWEgLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgY2xpcC1wYXRoOiBub25lO1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdG9wOiA1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgei1pbmRleDogMTAwMDAwO1xuICAgIC8qIEFib3ZlIFdQIHRvb2xiYXIuICovIH1cblxuLmZsb2F0eS1lbmFibGVkIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIC5mbG9hdHkge1xuICBtYXJnaW4tdG9wOiAtMS41NjI1cmVtOyB9XG5cbi5wdWxsLW91dC1jb250ZW50IHNwYW4ge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5hY2NvcmRpb25zIGgzIHtcbiAgbWFyZ2luLXRvcDogMS44NzVyZW07IH1cblxuLmFjY29yZGlvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLmFjY29yZGlvbi1pdGVtICsgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7IH1cbiAgLmFjY29yZGlvbi1pdGVtID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgcGFkZGluZzogMTBweCAwIDEwcHg7IH1cbiAgICAuYWNjb3JkaW9uLWl0ZW0gPiAuYWNjb3JkaW9uLXRpdGxlOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtOyB9XG4gICAgLmFjY29yZGlvbi1pdGVtID4gLmFjY29yZGlvbi10aXRsZSBoNCB7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAgIC5hY2NvcmRpb24taXRlbSA+IC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24taXRlbSA+IC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmFjY29yZGlvbi1pdGVtIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgcGFkZGluZzogMCA0MHB4IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gIC5hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjb2xvcjogI0ZBNjQwMDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMS4xODc1cmVtOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3Mge1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIGE6bm90KC5idXR0b24pIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIC5jb2x1bW4sIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbiAucm93LCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIC5jb2x1bW5zIC5yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ3MTsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbiAuYmFja2dyb3VuZC1pbWFnZSwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyAuY29sdW1ucyAuYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMS4ycyBlYXNlLWluLW91dDsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyAuY29sdW1uIC5iYWNrZ3JvdW5kLWltYWdlOmFmdGVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIC5jb2x1bW5zIC5iYWNrZ3JvdW5kLWltYWdlOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzAwMCA0MCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDAuNjk7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIC5jb2x1bW4gLmNvbnRlbnQsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbnMgLmNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMy43NXJlbSAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbiAuY29udGVudCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyAuY29sdW1ucyAuY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZzogMy43NXJlbTsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbiAuY29udGVudCwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyAuY29sdW1ucyAuY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZzogMTIuNXJlbSA1cmVtIDkuMzc1cmVtOyB9IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgLmNvbHVtbiAuY29udGVudCBoMiwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyAuY29sdW1ucyAuY29udGVudCBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyBhLmNvbHVtbiwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyBhLmNvbHVtbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyBhLmNvbHVtbjpob3ZlciAuYmFja2dyb3VuZC1pbWFnZSwgLnBhZ2VidWlsZGVyIHNlY3Rpb24uYmxvY2tsaW5rcyBhLmNvbHVtbnM6aG92ZXIgLmJhY2tncm91bmQtaW1hZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyNSk7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIGEuY29sdW1uOmhvdmVyIC5idXR0b24tc29saWQtcmVkOmhvdmVyLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIGEuY29sdW1uczpob3ZlciAuYnV0dG9uLXNvbGlkLXJlZDpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICNmZWZlZmU7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5ibG9ja2xpbmtzIGEuY29sdW1uOmhvdmVyIC5idXR0b24tc29saWQtd2hpdGU6aG92ZXIsIC5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3MgYS5jb2x1bW5zOmhvdmVyIC5idXR0b24tc29saWQtd2hpdGU6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjRkE2NDAwOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3Qge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMy43NXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjRkE2NDAwO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwcmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyLjQ5ODc1ZW0pIHtcbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogN3JlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2Mi40OTg3NWVtKSB7XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogMjByZW07IH0gfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250YWN0LWRpdiB7XG4gICAgbWFyZ2luLXRvcDogMTByZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250YWN0LWRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDsgfSB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGFjdC1kaXYgaDIge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA5MDAgIWltcG9ydGFudDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMzFweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogMHJlbSAhaW1wb3J0YW50OyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGFjdC1kaXYgcCB7XG4gICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMCAhaW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHggIWltcG9ydGFudDsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IHtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB6LWluZGV4OiAwOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBhIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGEuYWRkcmVzcywgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBhLnBob25lLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGEuZW1haWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAwOyB9XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgYS5hZGRyZXNzIHN2ZywgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBhLnBob25lIHN2ZywgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBhLmVtYWlsIHN2ZyB7XG4gICAgICAgICAgZmlsbDogI2ZlZmVmZTsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgaDIge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGgyIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzLjVyZW07IH0gfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgcCB7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0ge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gW3R5cGU9XCJ0ZXh0XCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gW3R5cGU9XCJkYXRlXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cIm1vbnRoXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwid2Vla1wiXSxcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cImVtYWlsXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwibnVtYmVyXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwic2VhcmNoXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwidGVsXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwidGltZVwiXSxcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cInVybFwiXSxcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cImNvbG9yXCJdLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIHRleHRhcmVhLFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIHNlbGVjdCB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDI2cHggMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAvKiBXZWJLaXQgYnJvd3NlcnMgKi9cbiAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICB3aWR0aDogNDkuNSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMzBweCAyMHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgICAgd2lkdGg6IDQ5LjUlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yLjZyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDIwcHggIWltcG9ydGFudDsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIHRleHRhcmVhIHtcbiAgICAgICAgcmVzaXplOiBub25lOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IDVweDsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjBweDsgfSB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLyogQ2hyb21lL09wZXJhL1NhZmFyaSAqL1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgLmdmaWVsZCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIC8qIElFIDEwKyAqL1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgLmdmaWVsZCBpbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLyogRmlyZWZveCAxOC0gKi9cbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAvKiBDaHJvbWUvT3BlcmEvU2FmYXJpICovXG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLyogRmlyZWZveCAxOSsgKi9cbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLyogSUUgMTArICovXG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIHRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC52YWxpZGF0aW9uX2Vycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzc5MDAwMDtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSAuZ2Zvcm1fZmllbGRzIGlucHV0LFxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgdGV4dGFyZWEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk3MTZjO1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgLmdmX2Z1bGwge1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IH0gfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgLmdmX2Z1bGwgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGRfZXJyb3Ige1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBpbnB1dC5nZm9ybV9idXR0b24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXQuZ2Zvcm1fYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkE2NDAwO1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0IC5jb250ZW50IGZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIG1pbi13aWR0aDogMTIuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDAgIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHggIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSAud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSAud3BjZjctZm9ybS1jb250cm9sLXdyYXAgLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCAud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMS44NzVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC4zNzVyZW07XG4gICAgICAgICAgYmFja2dyb3VuZDogI0ZBNjQwMDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjZmVmZWZlO1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgLnNjcmVlbi1yZWFkZXItcmVzcG9uc2UsXG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCAud3BjZjctdmFsaWRhdGlvbi1lcnJvcnMge1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCAuc2NyZWVuLXJlYWRlci1yZXNwb25zZSB1bCxcbiAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAgLmNvbnRlbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMTAlO1xuICAgIHJpZ2h0OiAtMTAlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogLTE7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIC5jb250ZW50OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IC0yNSU7XG4gICAgICAgIHJpZ2h0OiAtNTAlOyB9IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIC5jb250ZW50LnJlZDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICNGQTY0MDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIC5jb250ZW50LmJsdWU6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCAuY29udGVudC5ncmVlbjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICM4QUJEMjQ7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIC5hY2YtbWFwLFxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAgLm1hcC1pbWFnZSB7XG4gICAgaGVpZ2h0OiAxOC43NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAgLmFjZi1tYXAsXG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAgLm1hcC1pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IDQuMDYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQuMDYyNXJlbTtcbiAgICAgICAgei1pbmRleDogMTsgfSB9XG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCArIHNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiA0LjA2MjVyZW07IH1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24ud2hpdGUgKyBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24ubGlnaHQtZ3JheSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkJGQzsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5tZWRpdW0tZ3JheSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxYzFkMDsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5kYXJrLWdyYXkgKyBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NzE7IH1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24ucmVkICsgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkE2NDAwOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLmJsdWUgKyBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24uZ3JlZW4gKyBzZWN0aW9uLmNvbnRhY3QuaGFzLW1hcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QUJEMjQ7IH1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCAuY29udGVudCBmb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE2NTAwO1xuICBtaW4td2lkdGg6IDEyLjVyZW07IH1cblxuLnRleHQtaW1hZ2UtYmxvY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRleHQtaW1hZ2UtYmxvY2sgLndyYXBwZXIgLmltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudGV4dC1pbWFnZS1ibG9jayAud3JhcHBlciAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgIC50ZXh0LWltYWdlLWJsb2NrIC53cmFwcGVyIC5jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgLnRleHQtaW1hZ2UtYmxvY2sgLndyYXBwZXIgLmNvbnRlbnQgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIGNvbG9yOiAjRkE2NDAwOyB9XG4gICAgLnRleHQtaW1hZ2UtYmxvY2sgLndyYXBwZXIgLmNvbnRlbnQgaDQge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLnRleHQtaW1hZ2UtYmxvY2sgLndyYXBwZXIgLmNvbnRlbnQgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi5pZS05IC52aWRlby1wbGF5IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnNlcGFyYXRvcixcbnNlY3Rpb24uc2VwYXJhdG9yIHtcbiAgcGFkZGluZzogNXJlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uc2VwYXJhdG9yIHN2ZyxcbiAgc2VjdGlvbi5zZXBhcmF0b3Igc3ZnIHtcbiAgICBoZWlnaHQ6IDQuMTg3NXJlbTtcbiAgICBmaWxsOiAjRkE2NDAwOyB9XG5cbi5pbWFnZS1zbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5pbWFnZS1zbGlkZXItLXNsaWRlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBncmFiOyB9XG4gIC5pbWFnZS1zbGlkZXItLXNsaWRlOmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBncmFiYmluZzsgfVxuICAuaW1hZ2Utc2xpZGVyLS1zbGlkZSAuY2FwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZnVsbC13aWR0aCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZnVsbC13aWR0aCAuaW1hZ2Utc2xpZGVyLS1zbGlkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmZ1bGwtd2lkdGggLmltYWdlLXNsaWRlci0tc2xpZGUgLmNhcHRpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1MCwgMTAwLCAwLCAwKSAwJSwgcmdiYSgyNTAsIDEwMCwgMCwgMC4xKSAxMCUsICNmYTY0MDAgMTAwJSk7XG4gICAgICAvKiBGRjMuNi0xNSAqL1xuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1MCwgMTAwLCAwLCAwKSAwJSwgcmdiYSgyNTAsIDEwMCwgMCwgMC4xKSAxMCUsICNmYTY0MDAgMTAwJSk7XG4gICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTAsIDEwMCwgMCwgMCkgMCUsIHJnYmEoMjUwLCAxMDAsIDAsIDAuMSkgMTAlLCAjZmE2NDAwIDEwMCUpO1xuICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzFhMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7XG4gICAgICAvKiBJRTYtOSAqLyB9XG4gICAgICAuZnVsbC13aWR0aCAuaW1hZ2Utc2xpZGVyLS1zbGlkZSAuY2FwdGlvbiBwIHtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmltYWdlLXNsaWRlci0tY29udHJvbHMge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAzcmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmltYWdlLXNsaWRlci0tY29udHJvbHMge1xuICAgICAgcGFkZGluZzogMCA2cmVtOyB9IH1cbiAgLmltYWdlLXNsaWRlci0tY29udHJvbHMgaSwgLmltYWdlLXNsaWRlci0tY29udHJvbHMgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEuOHJlbTtcbiAgICBoZWlnaHQ6IDEuOHJlbTtcbiAgICBmaWxsOiAjZmVmZWZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5pbWFnZS1zbGlkZXItLWNvbnRyb2xzLXByZXYge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuICAgIC5pbWFnZS1zbGlkZXItLWNvbnRyb2xzLXByZXY6aG92ZXIgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAuaW1hZ2Utc2xpZGVyLS1jb250cm9scy1uZXh0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuaW1hZ2Utc2xpZGVyLS1jb250cm9scy1uZXh0OmhvdmVyIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtOyB9XG4gIC5pbWFnZS1zbGlkZXItLWNvbnRyb2xzIGJ1dHRvbiwgLmltYWdlLXNsaWRlci0tY29udHJvbHMgLmJ1dHRvbiwgLmltYWdlLXNsaWRlci0tY29udHJvbHMgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmltYWdlLXNsaWRlci0tY29udHJvbHMgYSwgLmltYWdlLXNsaWRlci0tY29udHJvbHMgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYSwgYm9keS5zY3JvbGxlZCAjaGVhZGVyLmRhcmstdGV4dCAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLmltYWdlLXNsaWRlci0tY29udHJvbHMgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4ubG9nby1jYXJvdXNlbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLmxvZ28tY2Fyb3VzZWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgaGVpZ2h0OiAxMDBweDsgfVxuICAubG9nby1jYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMnJlbSAwIDAgMDsgfVxuICAgIC5sb2dvLWNhcm91c2VsIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAubG9nby1jYXJvdXNlbCAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkE2NDAwOyB9XG5cbi5wYWdlLWZlYXR1cmUtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7IH1cbiAgLnBhZ2UtZmVhdHVyZS1zZWN0aW9uIC5mZWF0dXJlLWNhcmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQTY0MDA7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgZmxleC1ncm93OiAxOyB9XG4gICAgLnBhZ2UtZmVhdHVyZS1zZWN0aW9uIC5mZWF0dXJlLWNhcmQgLmZlYXR1cmUtaW1nIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDE0cmVtO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweCAyMHB4IDBweCAwcHg7IH1cbiAgICAgIC5wYWdlLWZlYXR1cmUtc2VjdGlvbiAuZmVhdHVyZS1jYXJkIC5mZWF0dXJlLWltZyBhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLnBhZ2UtZmVhdHVyZS1zZWN0aW9uIC5mZWF0dXJlLWNhcmQgLmNhcmQtZGV0YWlscyB7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAgIC5wYWdlLWZlYXR1cmUtc2VjdGlvbiAuZmVhdHVyZS1jYXJkIC5jYXJkLWRldGFpbHMgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAgIC5wYWdlLWZlYXR1cmUtc2VjdGlvbiAuZmVhdHVyZS1jYXJkIC5jYXJkLWRldGFpbHMgc3BhbiBhIHtcbiAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgICAgLnBhZ2UtZmVhdHVyZS1zZWN0aW9uIC5mZWF0dXJlLWNhcmQgLmNhcmQtZGV0YWlscyBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAucGFnZS1mZWF0dXJlLXNlY3Rpb24gLmZlYXR1cmUtY2FyZCAuY2FyZC1kZXRhaWxzIC5jdGEge1xuICAgICAgICBtYXJnaW46IDFyZW0gMCAwIDA7IH1cbiAgLnBhZ2UtZmVhdHVyZS1zZWN0aW9uIC5jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgMCAxcmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAucGFnZS1mZWF0dXJlLXNlY3Rpb24gLmNvbHVtbnMge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuXG4ucGFnZS1mZWF0dXJlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgLnBhZ2UtZmVhdHVyZXMge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAucGFnZS1mZWF0dXJlcyAubmV3cy1jYXJkLXR3aXR0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZGExZjI7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgZmxleC1ncm93OiAxOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC53aXRob3V0LWNvbnRlbnQge1xuICAgIGhlaWdodDogNDYuODc1cmVtO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC53aXRob3V0LWNvbnRlbnQgLmltYWdlOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXggLmltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4IC5pbWFnZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXggLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDYuMjVyZW0gMDtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheCAuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheCAuY29udGVudCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4IC5jb250ZW50ID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyOyB9XG4gICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXggLmNvbnRlbnQgaDIge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4IC5jb250ZW50IHAge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXgudmlkZW8ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbyAuY29sdW1uLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbyAuY29sdW1ucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbyAuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtOyB9IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbyAuY29udGVudCAucGxheS1idXR0b24ge1xuICAgICAgd2lkdGg6IDMuNzVyZW07XG4gICAgICBoZWlnaHQ6IDMuNzVyZW07XG4gICAgICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9wbGF5LnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbyAuY29udGVudCAucGxheS1idXR0b24ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBsZWZ0OiAzMy4zMzMlO1xuICAgICAgICAgIHdpZHRoOiA3LjVyZW07XG4gICAgICAgICAgaGVpZ2h0OiA3LjVyZW07XG4gICAgICAgICAgbWFyZ2luOiAtMy43NXJlbSAwIDAgLTMuNzVyZW07IH0gfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4LnZpZGVvLndpdGgtY29udGVudDphZnRlciB7XG4gICAgICBsZWZ0OiA1MCU7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4LnZpZGVvLndpdGgtY29udGVudDphZnRlciB7XG4gICAgICAgICAgdG9wOiA1MCU7IH0gfVxuICAgIC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4LnZpZGVvOmhvdmVyIC5pbWFnZTphZnRlciB7XG4gICAgICBvcGFjaXR5OiAwLjY7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXgudmlkZW86aG92ZXIgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtOyB9IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheC52aWRlbzpob3ZlciAuY29udGVudCAucGxheS1idXR0b24ge1xuICAgICAgd2lkdGg6IDQuMzc1cmVtO1xuICAgICAgaGVpZ2h0OiA0LjM3NXJlbTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXgudmlkZW86aG92ZXIgLmNvbnRlbnQgLnBsYXktYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogOC4xMjVyZW07XG4gICAgICAgICAgaGVpZ2h0OiA4LjEyNXJlbTtcbiAgICAgICAgICBtYXJnaW46IC00LjA2MjVyZW0gMCAwIC00LjA2MjVyZW07IH0gfVxuXG4ubW9kYWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC05OTk5OTk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0OyB9XG4gIC5tb2RhbCAub3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7IH1cbiAgICAubW9kYWwgLm92ZXJsYXk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdYJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICB0b3A6IDEuNXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNWVtIDAuNmVtIDAuNGVtO1xuICAgICAgYmFja2dyb3VuZDogI0ZBNjQwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5tb2RhbCBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMCU7XG4gICAgdG9wOiAxMCU7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7IH1cbiAgLm1vZGFsLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OTk5OTk7IH1cbiAgICAubW9kYWwuYWN0aXZlIGlmcmFtZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cblxuaHRtbC5pb3MgLnBhZ2VidWlsZGVyIHNlY3Rpb24ucGFyYWxsYXggLmltYWdlIHtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsOyB9XG5cbi5xdWlja2xpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5xdWlja2xpbmsgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAucXVpY2tsaW5rIGEgLmljb24taW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgICAgLnF1aWNrbGluayBhIC5pY29uLWltYWdlIGltZyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW0gYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAucXVpY2tsaW5rIGEgLmNvbnRlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAzcmVtIDA7IH1cbiAgICAgIC5xdWlja2xpbmsgYSAuY29udGVudCBoNCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW0gMDsgfVxuICAgICAgLnF1aWNrbGluayBhIC5jb250ZW50IHAge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW0gMDsgfVxuICAgICAgLnF1aWNrbGluayBhIC5jb250ZW50IGEge1xuICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5xdWlja2xpbmsgYTpob3ZlciBpbWcge1xuICAgICAgb3BhY2l0eTogLjg7IH1cbiAgICAucXVpY2tsaW5rIGE6aG92ZXIgaDMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnNlcnZpY2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBoZWlnaHQ6IDMwMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayB7XG4gICAgICAgIGhlaWdodDogNTAwcHg7IH0gfVxuICAgIC5zZXJ2aWNlcyAuc2VydmljZXMtYmxvY2sgLnNlcnZpY2VzLWNvbnRlbnQge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUwLCAxMDAsIDAsIDAuMik7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIHBhZGRpbmc6IDEuM3JlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyLjVlbSkge1xuICAgICAgICAuc2VydmljZXMgLnNlcnZpY2VzLWJsb2NrIC5zZXJ2aWNlcy1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjZyZW07IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayAuc2VydmljZXMtY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZzogMnJlbTsgfSB9XG4gICAgICAuc2VydmljZXMgLnNlcnZpY2VzLWJsb2NrIC5zZXJ2aWNlcy1jb250ZW50IGkge1xuICAgICAgICBjb2xvcjogI0ZBNjQwMDsgfVxuICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayAuc2VydmljZXMtY29udGVudCBoMiB7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayAuc2VydmljZXMtY29udGVudCBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07IH0gfVxuICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jayAuc2VydmljZXMtY29udGVudCAuY292ZXItbGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jazpob3ZlciAuc2VydmljZXMtY29udGVudCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDEwMCwgMCwgMC44KTsgfVxuICAgIC5zZXJ2aWNlcyAuc2VydmljZXMtYmxvY2stbGFzdCAuc2VydmljZXMtY29udGVudCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuICAgICAgLnNlcnZpY2VzIC5zZXJ2aWNlcy1ibG9jay1sYXN0IC5zZXJ2aWNlcy1jb250ZW50IGEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogM3JlbTsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5wYWdpbmF0aW9uIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAucGFnaW5hdGlvbiB1bCBsaSBhIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5maWx0ZXJzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkJGQztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZmlsdGVycyB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuZmlsdGVycyB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07IH1cbiAgICAgIC5maWx0ZXJzIHVsIGxpIGEge1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjVyZW07IH1cbiAgICAgICAgLmZpbHRlcnMgdWwgbGkgYTpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNGQTY0MDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDE1JTtcbiAgICAgICAgICBsZWZ0OiAwLjVyZW07IH1cbiAgICAgIC5maWx0ZXJzIHVsIGxpLmFjdGl2ZSBhIHtcbiAgICAgICAgY29sb3I6ICNGQTY0MDA7IH1cbiAgICAgICAgLmZpbHRlcnMgdWwgbGkuYWN0aXZlIGE6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5zdG9ja2lzdHMgLmdtLXN0eWxlIHtcbiAgbWFyZ2luLXRvcDogNy41cmVtICFpbXBvcnRhbnQ7IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uc3RvY2tpc3RzIC5nbS1zdHlsZSBpZnJhbWUgKyBkaXYge1xuICAgIG1hcmdpbi10b3A6IC03LjVyZW07IH1cbiAgLnBhZ2VidWlsZGVyIHNlY3Rpb24uc3RvY2tpc3RzIC5nbS1zdHlsZSAjcGFjLWlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICB0b3A6IC03LjVyZW0gIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMS44NzVyZW0gMi41cmVtO1xuICAgIGJvcmRlcjogc29saWQgMS44NzVyZW0gI0ZBNjQwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5zdG9ja2lzdHMgLmdtLXN0eWxlICNwYWMtaW5wdXQ6YWN0aXZlLCAucGFnZWJ1aWxkZXIgc2VjdGlvbi5zdG9ja2lzdHMgLmdtLXN0eWxlICNwYWMtaW5wdXQ6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjRkE2NDAwOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnN0b2NraXN0cyAjbWFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDM1NXB4KTtcbiAgbWluLWhlaWdodDogNjAwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFnZWJ1aWxkZXIgc2VjdGlvbi5zdG9ja2lzdHMgI21hcCB7XG4gICAgICBtaW4taGVpZ2h0OiA4MDBweDsgfSB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnN0b2NraXN0cyAuaWNvbiBzdmcge1xuICBoZWlnaHQ6IDEuODc1cmVtO1xuICBmaWxsOiAjRkE2NDAwOyB9XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnN0b2NraXN0cyAuZ20tc3R5bGUtaXctZCBoMyB7XG4gIG1hcmdpbjogMCAwIDAuMzEyNXJlbTtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5zdG9ja2lzdHMgLmdtLXN0eWxlLWl3LWQgcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4udGFiYmVkLWNvbnRlbnQgLnRpdGxlLWFyZWEgcCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLnRhYnMtY29udGVudCB7XG4gIG1hcmdpbjogMCAwIDNyZW0gMDtcbiAgcGFkZGluZzogMnJlbTsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgYWxpZ24tY29udGVudDogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Mi41ZW0pIHtcbiAgICAudGFicyB7XG4gICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC50YWJzIGxpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIuNWVtKSB7XG4gICAgICAudGFicyBsaSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIC50YWJzIGxpLmlzLWFjdGl2ZSBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYTY0MDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC50YWJzIGxpLmlzLWFjdGl2ZSBhOmFmdGVyIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTAsIDEwMCwgMCwgMCk7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICNGQTY0MDA7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG4gICAgLnRhYnMgbGkgaDQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAudGFicyBsaSBhIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAudGFicyBsaSBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhNjQwMDsgfVxuICAgICAgICAudGFicyBsaSBhOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTAsIDEwMCwgMCwgMCk7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI0ZBNjQwMDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG5cbnRhYmxlIHRoZWFkIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQTY0MDA7IH1cbiAgdGFibGUgdGhlYWQgdGgge1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtOyB9XG5cbnRhYmxlIHRyIHRkIHtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07IH1cbiAgdGFibGUgdHIgdGQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNGQTY0MDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnRlc3RpbW9uaWFscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC50ZXN0aW1vbmlhbHMgLnNsaWNrLWRvdHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDJyZW0gMCAwIDA7IH1cbiAgICAudGVzdGltb25pYWxzIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkJGQztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnRlc3RpbW9uaWFscyAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkE2NDAwOyB9XG4gIC50ZXN0aW1vbmlhbHMgaDMge1xuICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgIG1hcmdpbjogMCAwIDJyZW0gMDsgfVxuICAudGVzdGltb25pYWxzIHVsIHtcbiAgICBtYXJnaW46IDJyZW0gMCAwIDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC50ZXN0aW1vbmlhbHMgdWwgbGkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBjdXJzb3I6IGdyYWI7IH1cbiAgICAgIC50ZXN0aW1vbmlhbHMgdWwgbGk6YWN0aXZlIHtcbiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsgfVxuICAudGVzdGltb25pYWxzIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnRlc3RpbW9uaWFscyBibG9ja3F1b3RlIHAge1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRlc3RpbW9uaWFscyBhdXRob3Ige1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGNvbG9yOiAjRkE2NDAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudGVzdGltb25pYWxzIC5jb250cm9scyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAgIC50ZXN0aW1vbmlhbHMgLmNvbnRyb2xzIGksIC50ZXN0aW1vbmlhbHMgLmNvbnRyb2xzIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgIGZpbGw6ICM1NDU0NzE7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLnRlc3RpbW9uaWFscyAuY29udHJvbHMgYnV0dG9uLCAudGVzdGltb25pYWxzIC5jb250cm9scyAuYnV0dG9uLCAudGVzdGltb25pYWxzIC5jb250cm9scyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAudGVzdGltb25pYWxzIC5jb250cm9scyBhLCAudGVzdGltb25pYWxzIC5jb250cm9scyBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhLCBib2R5LnNjcm9sbGVkICNoZWFkZXIuZGFyay10ZXh0ICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAudGVzdGltb25pYWxzIC5jb250cm9scyBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgICAgLnRlc3RpbW9uaWFscyAuY29udHJvbHMgYnV0dG9uOmxhc3QtY2hpbGQsIC50ZXN0aW1vbmlhbHMgLmNvbnRyb2xzIC5idXR0b246bGFzdC1jaGlsZCwgLnRlc3RpbW9uaWFscyAuY29udHJvbHMgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgYTpsYXN0LWNoaWxkLCAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSAudGVzdGltb25pYWxzIC5jb250cm9scyBhOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIC50ZXN0aW1vbmlhbHMgLmNvbnRyb2xzIGJ1dHRvbiBzdmcsIC50ZXN0aW1vbmlhbHMgLmNvbnRyb2xzIC5idXR0b24gc3ZnLCAudGVzdGltb25pYWxzIC5jb250cm9scyAjaGVhZGVyICNtYWluLW1lbnUgdWwgbGkucHJpbWFyeSBhIHN2ZywgI2hlYWRlciAjbWFpbi1tZW51IHVsIGxpLnByaW1hcnkgLnRlc3RpbW9uaWFscyAuY29udHJvbHMgYSBzdmcge1xuICAgICAgICBmaWxsOiAjRkE2NDAwOyB9XG5cbi50ZXh0LWJsb2NrLCAudGV4dC1ibG9jay10d28sIC50ZXh0LWJsb2NrLXRocmVlLCAudGV4dC1ibG9jay1mb3VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4iLCIvKiFcblRoZW1lIE5hbWU6IEN1c3RvbSBUaGVtZVxuVGhlbWUgVVJJOiBodHRwczovL3d3dy52aXZpZGNyZWF0aXZlLmNvbVxuQXV0aG9yOiBWaXZpZCBDcmVhdGl2ZVxuQXV0aG9yIFVSSTogaHR0cHM6Ly93d3cudml2aWRjcmVhdGl2ZS5jb21cbkRlc2NyaXB0aW9uOiBDdXN0b20gVGhlbWUgZm9yIENsaWVudFxuVmVyc2lvbjogMS4wLjBcblRleHQgRG9tYWluOiBjdXN0b210aGVtZVxuVGFnczogY3VzdG9tLXRoZW1lXG4qL1xuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhlc1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBEaXNhYmxlIG91dGxpbmUgd2hlbiBpbnRlbnQgaXMgY2xlYXJseSBtb3VzZSBhbmQgdG91Y2hcbiAgW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0sXG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSB7XG4gICAgKiwgKjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgaU9TIGNhbGxvdXRzIHdoZW4gZHJhZ2dhYmxlIGlzIGZhbHNlXG4gIFtkcmFnZ2FibGU9ZmFsc2VdIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHNhZmUgcGFkZGluZyBvbiB0aGUgYm9keSBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRldmljZXMgKGkuZS4gcGhvbmVzIHdpdGggbm90Y2hlcylcbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1zYWZlLXBhZGRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpZiAoJGJvZHktc2FmZS1wYWRkaW5nKSB7XG4gICAgICAvLyB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWNjb3VudCBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzIGUuZy4gcGhvbmVzIHdpdGggbm90Y2hlc1xuICAgICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbi8vIEdsb2JhbCBmb250IHNpemUgMTAwJSA9IDE2cHgsIDYyLjUlID0gMTBweFxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkgeyAkZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTsgfVxuXG4kZ2xvYmFsX2d1dHRlcjogMzA7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMDcwICsgJGdsb2JhbF9ndXR0ZXIgKiAyKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuXG5cbi8vIEJyYW5kXG4kYmMxOiAjRkE2NDAwOyAvLyBCcmFuZCBQcmltYXJ5XG4kYmMyOiAjMDAwMDAwOyAvLyBCcmFuZCBTZWNvbmRhcnkvQ29udHJhc3RcbiRiYzM6ICM4QUJEMjQ7IC8vIEJyYW5kIEFjY2VudCAxXG4kYmM0OiAjNjI2MjYyOyAvLyBCcmFuZCBBY2NlbnQgMlxuXG4kbGlnaHQtZ3JheTogI0ZCRkJGQztcbiRtZWRpdW0tZ3JheTogZGFya2VuKCRsaWdodC1ncmF5LCAyMCUpO1xuJGRhcmstZ3JheTogZGFya2VuKCRsaWdodC1ncmF5LCA2MCUpO1xuJGJsYWNrOiAjMDAwMDAwO1xuJHdoaXRlOiAjZmVmZWZlO1xuXG5cbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogJGJjMSxcbiAgc2Vjb25kYXJ5OiAkYmMyLFxuICBzdWNjZXNzOiAjOEFCRDI0LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbiAgbGlnaHQtZ3JheTogJGxpZ2h0LWdyYXksXG4gIG1lZGl1bS1ncmF5OiAkbWVkaXVtLWdyYXksXG4gIGRhcmstZ3JheTogJGRhcmstZ3JheSxcbiAgYmxhY2s6ICRibGFjayxcbiAgd2hpdGU6ICR3aGl0ZSxcbik7XG5cblxuXG5cbi8vIEJhY2tncm91bmRcbiRiZzE6ICRsaWdodC1ncmF5OyAvLyBOYW1lT2ZDb2xvdXJcbiRiZzI6ICR3aGl0ZTsgLy8gTmFtZU9mQ29sb3VyXG5cbi8vIFRleHRcbiR0YzE6ICRibGFjazsgLy8gTmFtZU9mQ29sb3VyXG5cblxuLy8gU29jaWFsIE1lZGlhXG4kZmFjZWJvb2s6ICMzYjU5OTg7XG4kdHdpdHRlcjogIzFkYTFmMjtcbiRjcmVhdGl2ZS1tYXJrZXQ6ICM4YmE3NTM7XG4kc2xhY2s6ICNlOWE4MjA7XG4kc2t5cGU6ICMwMGFmZjA7XG4kaW5zdGFncmFtOiAkYmxhY2s7XG4kZHJpYmJibGU6ICNlYTRjODk7XG4kYmVoYW5jZTogIzE3NjlmZjtcbiRsaW5rZWRpbjogIzAwNzdiNTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6IEJyYW5kb24sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMS41cmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxLjVyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW07XG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogdHJ1ZTtcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0bztcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDA7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcbiRwcmludC1ocmVmczogdHJ1ZTtcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiAxMDAwcHgsXG4gIGxhcmdlOiAxMjAwcHgsXG4gIHhsYXJnZTogMTQ0MHB4LFxuICB4eGxhcmdlOiAxNjgwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogJGdsb2JhbF9ndXR0ZXIsXG4gIC8vIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjU7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzMiksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyNiksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyMiksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBsYXJnZTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzIpLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTYpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTQpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG5cbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMTBweCBzb2xpZCAkYmMxO1xuXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiBkYXJrZW4oJGxpZ2h0LWdyYXksIDIuNSUpO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogZGFya2VuKCRsaWdodC1ncmF5LCA1JSk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDEwcHggc29saWQgJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAkZ2xvYmFsLXBhZGRpbmcqMjtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuNWVtIDEuNWVtO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJGJjMztcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogMDtcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjc1cmVtLFxuICBzbWFsbDogMXJlbSxcbiAgZGVmYXVsdDogMXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlO1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENhcmRcbi8vIC0tLS0tLS0tXG5cbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm9yZGVyOiBweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRjYXJkLXNoYWRvdzogMHB4IDEwcHggMzBweCAtMjVweCByZ2JhKDAsMCwwLDAuNzUpO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbioxLjU7XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICRiYzE7XG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkd2hpdGU7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDRweDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogMXJlbTtcbiRtZW51LXNpbXBsZS1tYXJnaW46IDA7XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTE7XG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjYuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNy4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI4LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pO1xuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSk7XG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKTtcblxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpO1xuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKTtcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbik7XG5cbi8vIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pO1xuXG4vLyAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbik7XG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NTtcblxuLy8gMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMyk7XG5cbi8vIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuICAgICAgICAgICAgICAgICAgICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuXG4vLyA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zaXppbmc6IChcbiAgd2lkdGgsXG4gIGhlaWdodFxuKTtcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pO1xuXG4vLyA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzO1xuXG4vLyA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAoXG4gIG92ZXJsaW5lLFxuICB1bmRlcmxpbmUsXG4gIGxpbmUtdGhyb3VnaCxcbik7XG5cbi8vIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pO1xuXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKTtcblxuLy8gNDcuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xuXG4vLyA0OC4gU2xpZGVyXG4vLyAtLS0tLS0tLS0tXG5cbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNDkuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyA1MC4gVGFibGVcbi8vIC0tLS0tLS0tLVxuXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWU7XG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGU6IGV2ZW47XG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMik7XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcblxuLy8gNTEuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA1Mi4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTMuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDU0LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHA7XG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTUuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkYmMxO1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcblxuXG5cblxuLy8gNTcuIE90aGVyXG4vLyAtLS0tLS0tLS0tLVxuXG4kZm9vdGVyLWJnOiAkYmxhY2s7XG4kZm9vdGVyLWNvbG9yOiAkd2hpdGU7XG5cbiRjYXJkLWNvdmVyLWJnOiAkYmMyO1xuXG4kdG9wYmFyLXJlc3BvbnNpdmUtYmc6ICRiYzE7XG4kdG9wYmFyLXJlc3BvbnNpdmUtY29sb3I6ICR3aGl0ZTtcbiR0b3BiYXItcmVzcG9uc2l2ZS1hbmltYXRpb24tdHlwZTogc2xpZGUtZG93bjtcbiR0b3BiYXItcG9zaXRpb246IHJlbGF0aXZlOyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1wYi12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWUgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAqIDAuNSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kdW5pdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiBkaXZpZGUoJG51bSwgJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6IGRpdmlkZSgkYmFzZSwgMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAaWYgJHVuaXQtd2FybmluZ3Mge1xuICAgICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIH1cbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IGRpdmlkZShzdHJpcC11bml0KCR2YWx1ZSksIHN0cmlwLXVuaXQoJGJhc2UpKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogZGl2aWRlKCRiYXNlLCAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gZGl2aWRlKHN0cmlwLXVuaXQoJHZhbHVlKSwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiBkaXZpZGUoJHZhbHVlLCBzdHJpcC11bml0KCRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgKiAwLjUgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICY6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGQtZnJvbS1oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpO1xuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZC1mcm9tLWhlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y29kZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY29kZS1pbmxpbmU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNpdGUtYmxvY2s6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIElubGluZSBDaXRhdGlvbnNcbiAgQGlmICgkZW5hYmxlLWNpdGUtYmxvY2sgPT0gdHJ1ZSkge1xuICAgIGNpdGUge1xuICAgICAgLy8gRXh0ZW5kaW5nIGEgY2xhc3MgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgICAgLy8gVE9ETzogQnJlYWsgdGhlIHR5cG9ncmFwaHktYmFzZS90eXBvZ3JhcGh5LWhlbHBlcnMgc2VwYXJhdGlvblxuICAgICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb2RlXG4gIEBpZiAoJGVuYWJsZS1jb2RlLWlubGluZSA9PSB0cnVlKSB7XG4gICAgY29kZSB7XG4gICAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgICB9XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1zaXplOiBudWxsO1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSBkaXZpZGUoMSwgJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHQtbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0LW51bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHQtbnVtYmVyKSB7XG4gICAgICAkbmV4dC1udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHQtbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kLWtleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZC1rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kLWtleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJWNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY2l0ZS1ibG9jayB7XG4gICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgfVxuXG4gICVjb2RlLWlubGluZSB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWlubGluZSB7XG4gICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBPdXRwdXRzIENTUyBjbGFzc2VzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiBmb3VuZGF0aW9uLWdyaWQoXG4gICRyb3c6ICdyb3cnLFxuICAkY29sdW1uOiAnY29sdW1uJyxcbiAgJGNvbHVtbi1yb3c6ICdjb2x1bW4tcm93JyxcbiAgJGd1dHRlcjogJ2d1dHRlcicsXG4gICRwdXNoOiAncHVzaCcsXG4gICRwdWxsOiAncHVsbCcsXG4gICRjZW50ZXI6ICdjZW50ZXJlZCcsXG4gICR1bmNlbnRlcjogJ3VuY2VudGVyZWQnLFxuICAkY29sbGFwc2U6ICdjb2xsYXBzZScsXG4gICR1bmNvbGxhcHNlOiAndW5jb2xsYXBzZScsXG4gICRvZmZzZXQ6ICdvZmZzZXQnLFxuICAkZW5kOiAnZW5kJyxcbiAgJGV4cGFuZGVkOiAnZXhwYW5kZWQnLFxuICAkYmxvY2s6ICdibG9jaydcbikge1xuICAvLyBSb3dcbiAgLiN7JHJvd30ge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgLy8gQ29sbGFwc2luZ1xuICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJiAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRncmlkLWNvbHVtbi1ndXR0ZXIpO1xuXG4gICAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgKGZ1bGwtd2lkdGgpIHJvd1xuICAgICYuI3skZXhwYW5kZWR9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC4jeyRleHBhbmRlZH0pIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkZ3JpZC1jb2x1bW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAvLyBTdGF0aWMgKHVucmVzcG9uc2l2ZSkgcm93IGd1dHRlcnNcbiAgICAgIC8vXG4gICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRncmlkLWNvbHVtbi1ndXR0ZXIge1xuICAgICAgICAmLiN7JGd1dHRlcn0tI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCR2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC4jeyRjb2x1bW59IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbDtcblxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmLiN7JGVuZH0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1lbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLiN7JHJvd30gLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBDb2x1bW4gd2lkdGhcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1zaXplKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgICBAaWYgJGkgPCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgICBAaWYgJHB1c2gge1xuICAgICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHB1bGwge1xuICAgICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKC0kaSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIEBpZiAkb2Zmc2V0IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRvZmZzZXR9LSN7JG99IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgJy4jeyRjb2x1bW59Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skZXhwYW5kZWR9LiN7JHJvd30gLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0uI3skcm93fSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgQGlmICRjZW50ZXIge1xuICAgICAgLiN7JC16Zi1zaXplfS0jeyRjZW50ZXJ9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gR3V0dGVyIGFkanVzdG1lbnRcbiAgICAkLWd1dHRlci11bnBvcy1zZWxlY3RvcjogKFxuICAgICAgaWYoJHVuY2VudGVyLCAnLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0nLCBudWxsKSxcbiAgICAgIGlmKCRwdXNoLCAnLiN7JC16Zi1zaXplfS0jeyRwdXNofS0wJywgbnVsbCksXG4gICAgICBpZigkcHVsbCwgJy4jeyQtemYtc2l6ZX0tI3skcHVsbH0tMCcsIG51bGwpLFxuICAgICk7XG4gICAgQGlmICgkdW5jZW50ZXIgb3IgJHB1c2ggb3IgJHB1bGwpIHtcbiAgICAgICN7JC1ndXR0ZXItdW5wb3Mtc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAqIDAuNSAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogMC41O1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMjogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgZGl2aWRlKCRleHBvbmVudCwgJGRlbm9taW5hdG9yKSksIGRpdmlkZSgkcHJlYzIsICRkZW5vbWluYXRvciksICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkYmFzZSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiBkaXZpZGUoMSwgJG4pICogKCgkbiAtIDEpICogJHggKyBkaXZpZGUoJG51bSwgcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiBkaXZpZGUoJGgsICR3KSAqIDEwMCU7XG59XG5cbi8vLyBQYXJzZSB0aGUgZ2l2ZW4gYCRmcmFjdGlvbmAgdG8gbnVtZXJhdG9ycyBhbmQgZGVudW1lcmF0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byBwYXJzZS4gSXQgY2FuIGJlIGZvcm1hdHRlZCBhcyBgNTAlYCwgYDEgb2YgMmAsIGAxLzJgIG9yIGA1MGAgKG5vIGRlbm9taW5hdG9yIHdvdWxkIGJlIHJldHVybmVkKS5cbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IExpc3Qgb2YgcGFyc2VkIHZhbHVlcyB3aXRoIG51bWVyYXRvciBhdCBmaXJzdCBwb3NpdGlvbiBhbmQgZGVudW1lcmF0b3IgYXMgc2Vjb25kLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG51bGwuXG5AZnVuY3Rpb24gemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKSB7XG5cbiAgQGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gXCI1MCVcIlxuICAgIEBpZiB1bml0KCRmcmFjdGlvbikgPT0gJyUnIHtcbiAgICAgIEByZXR1cm4gKHN0cmlwLXVuaXQoJGZyYWN0aW9uKSwgMTAwKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKHVuaXQoJGZyYWN0aW9uKSA9PSAnJykge1xuICAgICAgLy8gXCIwLjVcIlxuICAgICAgQGlmICRmcmFjdGlvbiA8IDEge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24gKiAxMDAsIDEwMCk7XG4gICAgICB9XG4gICAgICAvLyBcIjUwXCJcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uLCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ2xpc3QnIHtcbiAgICAvLyBcIjUwIG9mIDEwMFwiLCBcIjUwLzEwMFwiLi4uXG4gICAgQGlmIGxlbmd0aCgkZnJhY3Rpb24pID09IDNcbiAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAxKSA9PSAnbnVtYmVyJylcbiAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZShkaXZpZGUoJHBhcnNlZC1ub21pbmF0b3IsICRwYXJzZWQtZGVub21pbmF0b3IpKTtcbn1cblxuLy8vIERpdmlkZSB0aGUgZ2l2ZW4gYCRkaXZpZGVudGAgYnkgdGhlIGdpdmVuIGAkZGl2aXNvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpdmlkZW50IC0gVGhlIGRpdmlkZW50LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGl2aXNvciAtIFRoZSBkaXZpc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHJlY2lzaW9uIC0gVGhlIHByZWNpc2lvbiBkZWNpbWFscyBmb3IgdGhlIGRpdmlzaW9uLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZGl2aXNpb24uXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEyKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yICdDYW5ub3QgZGl2aWRlIGJ5IDAnO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAwLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgICdweCc6IDFweCxcbiAgICAncmVtJzogMXJlbSxcbiAgICAnZW0nOiAxZW0sXG4gICAgJyUnOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgQHJldHVybiBmcmFjdGlvbi10by1wZXJjZW50YWdlKCRjb2x1bW5zLCAkZGVub21pbmF0b3I6ICRncmlkLWNvbHVtbi1jb3VudCk7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuICAvLyBQb3NpdGlvblxuICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoYXV0byk7XG5cbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKGRpdmlkZSgkcG9zaXRpb24sICRncmlkLWNvbHVtbi1jb3VudCkpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuXG4gIC8vIENlbnRlciBwb3NpdGlvbmluZ1xuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBcImNlbnRlclwiIG9yIFwiYXV0b1wiLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oYXV0byk7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKGRpdmlkZSgxLCAkbikpO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgKiAwLjU7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAqIDAuNTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gZGl2aWRlKDEwMCwgJG4pICogJGkpICogMC41ICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIGRpdmlkZSgxMDAsICRuKSAqICRpKSAqIDAuNSAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBJZ25vcmVkIGlmIG51bGwgKGRlZmF1bHQpXG4vLy8gQHR5cGUgRm9udC1XZWlnaHRcbiRidXR0b24tZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgYnV0dG9ucywgdHJhbnNwYXJlbnQgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRpdGlvbmFsIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgLmV4cGFuZGVkXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICBib3JkZXI6ICRidXR0b24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgb3IgY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGluIGBidXR0b24tZmlsbC1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuIGBzb2xpZGAgaGFzIG5vIGVmZmVjdHMuXG5AbWl4aW4gYnV0dG9uLWZpbGwoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZXMgb2YgYSBzb2xpZC9ob2xsb3cvY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGlucyBgYnV0dG9uLXN0eWxlYCwgYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGFuZCBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgZWZmZWN0cyBvZiB2aXN1YWwgc3R5bGluZyBwYXJhbWV0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gLVxuQG1peGluIGJ1dHRvbi1maWxsLXN0eWxlKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGZpbGwgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyLXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgYW5kIGJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci13aWR0aCBbJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXSAtIEJvcmRlciB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWNsZWFyIHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuQG1peGluIGJ1dHRvbi1jbGVhci1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCBhbmQgcmVzZXRpbmcgdGhlIGN1cnNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9wYWNpdHkgWyRidXR0b24tb3BhY2l0eS1kaXNhYmxlZF0gLSBPcGFjaXR5IG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXG4pIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRzdHlsZSk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRzdHlsZSwgJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkc3R5bGU6IG5vbmUpO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29saWQsIGhvbGxvdyAmIGNsZWFyIHN0eWxlc1xuICAgIEBlYWNoICRmaWxsaW5nIGluIChzb2xpZCBob2xsb3cgY2xlYXIpIHtcbiAgICAgICRzZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nKTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC4gKE9ubHkgbmVlZGVkIHdoZW4gJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTspXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBEaXNhYmxlIGNsZWFyZml4XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1ha2UgYnV0dG9ucyBib25kZWQgd2l0aG91dCBnYXAgYmV0d2VlbiB0aGVtLiBCb3JkZXJzIGJldHdlZW4gYnV0dG9ucyBhcmUgbWVyZ2VkXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLW5vLWdhcHMoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiByZW0tY2FsYygtJGJvcmRlci13aWR0aCk7XG5cbiAgICArICN7JHNlbGVjdG9yfSB7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJGJhc2Utc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skYmFzZS1zZWxlY3Rvcn0ge1xuICAgICAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYnV0dG9uIGJhc2Ugc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBmaWxsaW5nXG4gICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAkaW5kaXZpZHVhbC1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfScpO1xuXG4gICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0sICN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5uby1nYXBzIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1uby1nYXBzO1xuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBzaXplIHRvIHVzZSBhcyBkZWZhdWx0XG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tc2l6ZVxuLy8vIEBzZWUgJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsXG4kY2xvc2VidXR0b24tZGVmYXVsdC1zaXplOiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVXNlZCB0byBnZW5lcmF0ZSBzaXppbmcgbW9kaWZpZXJzLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICRjbG9zZWJ1dHRvbi16LWluZGV4O1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICAvLyBVc2UgYnkgZGVmYXVsdCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGRlZmF1bHQgc2l6ZVxuICAgIEBleHRlbmQgJXpmLWNsb3NlLWJ1dHRvbi0tI3skY2xvc2VidXR0b24tZGVmYXVsdC1zaXplfTtcblxuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgIC8vIEdlbmVyYXRlIGEgcGxhY2Vob2xkZXIgYW5kIGEgY2xhc3MgZm9yIGVhY2ggc2l6ZVxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkY2xvc2VidXR0b24tc2l6ZSB7XG4gICAgICBAYXQtcm9vdCB7XG4gICAgICAgICV6Zi1jbG9zZS1idXR0b24tLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZSgkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBleHRlbmQgJXpmLWNsb3NlLWJ1dHRvbi0tI3skbmFtZX07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc3dpdGNoXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAudGlueSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaFxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGEgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGEgZGlzYWJsZWQgc3dpdGNoLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1vcGFjaXR5LWRpc2FibGVkOiAwLjUgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgZm9yIGEgZGlzYWJsZWQgc3dpdGNoLlxuLy8vIEB0eXBlIEN1cnNvclxuJHN3aXRjaC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICAvLyBpbmRpY2F0ZSBhIGRpc2FibGVkIHN3aXRjaFxuICBpbnB1dDpkaXNhYmxlZCB+ICYge1xuICAgIGN1cnNvcjogJHN3aXRjaC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgb3BhY2l0eTogJHN3aXRjaC1vcGFjaXR5LWRpc2FibGVkO1xuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAqIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3QgW2ZhbHNlXSAtIE5lZWRlZCBpZiB5b3Ugb25seSB3YW50IHRvIGFwcGx5IHRoaXMgdG8gYSBzcGVjaWZpYyB0YWJsZS5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kcHJpbWFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6IGRpdmlkZSgkcmdiLCAyNTUpO1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsIGRpdmlkZSgkcmdiLCAxMi45MiksIHBvdyhkaXZpZGUoJHJnYiArIDAuMDU1LCAxLjA1NSksIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86IGRpdmlkZSgkbHVtaW5hbmNlMSwgJGx1bWluYW5jZTIpO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IGRpdmlkZSgxLCAkcmF0aW8pO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgKiAwLjE7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuICdDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fSc7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgcHJldmlvdXMgYXJyb3cgd2hlbiBgJHBhZ2luYXRpb24tYXJyb3dzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwYWdpbmF0aW9uLWFycm93LXByZXZpb3VzOiAnXFwwMEFCJyAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBuZXh0IGFycm93IHdoZW4gYCRwYWdpbmF0aW9uLWFycm93c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFnaW5hdGlvbi1hcnJvdy1uZXh0OiAnXFwwMEJCJyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRwYWdpbmF0aW9uLWFycm93LXByZXZpb3VzO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJHBhZ2luYXRpb24tYXJyb3ctbmV4dDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHBsdXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbWludXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICYubWlkZGxlIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJi5ib3R0b20ge1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCBkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSB0ZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIHRvcC9ib3R0b20gaWNvbnMgd2l0aGluIGEgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRhbGlnbm1lbnQgW2NlbnRlcl0gLSBBbGlnbm1lbnQgb2YgdGhlIGljb25cbkBtaXhpbiBtZW51LWljb24tYWxpZ25tZW50KCRhbGlnbm1lbnQ6IGNlbnRlcikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLmljb24tdG9wLFxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgbGkgYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlLCAoJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUsICRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZSkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQobGVmdCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IGljb24gcG9zaXRpb25cbiAgICAvLyBJbmNsdWRlcyBzcGVjaWZpY2l0eSB0byBuZXN0ZWQgaWNvbnMgd2l0aCBhIGRpZmZlcmVudCBwb3NpdGlvblxuICAgICYsXG4gICAgJi5uZXN0ZWQge1xuICAgICAgLy8gSWNvbiBMZWZ0XG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBSaWdodFxuICAgICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBUb3BcbiAgICAgICYuaWNvbi10b3Age1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBCb3R0b21cbiAgICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTGlzdFxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIGhlaWdodC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplICogMC41KTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gUm90YXRlIHRoZSBhcnJvdyB3aGVuIG1lbnUgaXMgb3BlblxuICAuc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIH1cblxuICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAqIDAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW1cbiAgICA+IGxpID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW0gYWN0aXZlIHN0YXRlXG4gICAgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbikge1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAwLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gMC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbiAgLnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBEYXJrIE1vZGUgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSUUxMCsgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItaWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAuc2hvdy1mb3ItaWUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWllIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBTdGlja3kgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pcy1zdHVjayAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaXMtc3R1Y2sgLmhpZGUtZm9yLXN0aWNreSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXV0aWxpdGllc1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB1dGlsaXRpZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IFZhbHVlIGZvciBgdGV4dC1vdmVyZmxvd2AgdmFyaWFibGVcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWRlZmF1bHQ7XG5cbi8vLyBJbWFnZSBSZXBsYWNlbWVudCB1dGlsaXR5LiBgdGV4dC1oaWRlYFxuQG1peGluIHRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLy8vIFRydW5jYXRpbmcgdGhlIHRleHQsIGVsaXBzaXMgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFskcHJvdG90eXBlLXRleHQtb3ZlcmZsb3ddIFRleHQgVHJ1bmNhdGVcbkBtaXhpbiB0ZXh0LXRydW5jYXRlKFxuICAkb3ZlcmZsb3c6ICRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd1xuKSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHRleHQtb3ZlcmZsb3c6ICRvdmVyZmxvdzsgXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIE5vIHdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC1ub3dyYXBgXG5AbWl4aW4gdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBXcmFwcGluZyBvZiB0aGUgdGV4dC4gYHRleHQtd3JhcGBcbkBtaXhpbiB0ZXh0LXdyYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzIHtcbiAgLnRleHQtaGlkZSB7XG4gICAgQGluY2x1ZGUgdGV4dC1oaWRlO1xuICB9XG5cbiAgLnRleHQtdHJ1bmNhdGUge1xuICAgIEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7XG4gIH1cblxuICAudGV4dC1ub3dyYXAge1xuICAgIEBpbmNsdWRlIHRleHQtbm93cmFwO1xuICB9XG5cbiAgLnRleHQtd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC13cmFwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtaGlkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtdHJ1bmNhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1ub3dyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC10cmFuc2Zvcm1hdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBUcmFuc2Zvcm1hdGlvbiwgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHJhbnNmb3JtYXRpb24gW10gVGV4dCBUcmFuc2Zvcm1hdGlvblxuQG1peGluIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbikge1xuICB0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybWF0aW9uICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgLnRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWZvbnQtc3R5bGluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZm9udCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIExldHRlciBzcGFjaW5nIGZvciBgLmZvbnQtd2lkZWBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LW5vcm1hbGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LWJvbGRgLCBkZWZhdWx0ZWQgdG8gYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3aWRlIGxldHRlciBzcGFjaW5nIVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV0dGVyLXNwYWNpbmcgWyRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZ10gV2lkZSBsZXR0ZXIgc3BhY2luZyBmb3IgdGhlIGZvbnRcbkBtaXhpbiBmb250LXdpZGUoXG4gICRsZXR0ZXItc3BhY2luZzogJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXG4pIHtcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IE5vcm1hbCwgZGVmYXVsdCB2YWx1ZSBjb21pbmcgdGhyb3VnaCBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ub3JtYWxdIFdlaWdodCBvZiB0aGUgZm9udCAobm9ybWFsKVxuQG1peGluIGZvbnQtbm9ybWFsKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtbm9ybWFsXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFdlaWdodCBCb2xkLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LWJvbGRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ib2xkXSBXZWlnaHQgb2YgdGhlIGZvbnQgKGJvbGQpXG5AbWl4aW4gZm9udC1ib2xkKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtYm9sZFxuKSB7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLy8gRm9udCBTdHlsZSBJdGFsaWNcbkBtaXhpbiBmb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nIHtcbiAgLmZvbnQtd2lkZSB7XG4gICAgQGluY2x1ZGUgZm9udC13aWRlO1xuICB9XG5cbiAgLmZvbnQtbm9ybWFsIHtcbiAgICBAaW5jbHVkZSBmb250LW5vcm1hbDtcbiAgfVxuXG4gIC5mb250LWJvbGQge1xuICAgIEBpbmNsdWRlIGZvbnQtYm9sZDtcbiAgfVxuXG4gIC5mb250LWl0YWxpYyB7XG4gICAgQGluY2x1ZGUgZm9udC1pdGFsaWM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZm9udC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtbm9ybWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWl0YWxpYyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBsaXN0IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS11bm9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLW9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbikgIWRlZmF1bHQ7XG5cblxuLy8vIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtdW5vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLXVub3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG4vLy8gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLW9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtb3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gbGlzdC11bm9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgdWwubGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgdWwuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgb2wubGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBvbC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGUge1xuICBAaW5jbHVkZSBsaXN0LXVub3JkZXJlZDtcbiAgQGluY2x1ZGUgbGlzdC1vcmRlcmVkO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1yb3VuZGVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciByb3VuZGVkIHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXJhZGl1c2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG5cbi8vLyBSb3VuZGVkIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogQWRkcyByYWRpdXMgY29ybmVycyAoYWxsIGNvcm5lcnMpIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGl1cyBbJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXSBCb3JkZXIgcmFkaXVzIChhbGwgY29ybmVycylcbkBtaXhpbiBib3JkZXItcmFkaXVzKFxuICAkcmFkaXVzOiAkcHJvdG90eXBlLWJvcmRlci1yYWRpdXNcbikge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vLy8gUm91bmRlZCBzcXVhcmUgdXRpbGl0eSBvciByZWN0YW5nbGUgdXRpbGl0eSAoYWxsIGNvcm5lcnMpOiBSb3VuZHMgYWxsIGNvcm5lcnMgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0IHRvIG1ha2UgYSBwaWxsIHNoYXBlLlxuQG1peGluIGJvcmRlci1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1yb3VuZGVkIHtcbiAgLnJvdW5kZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuXG4gICAgLnN3aXRjaC1wYWRkbGUge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBGb3Igc3dpdGNoZXNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucmFkaXVzIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1yb3VuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tcmFkaXVzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlcmVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXJlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItd2lkdGhgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci10eXBlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1jb2xvcmAgZGVmYXVsdGVkIHRvIGBtZWRpdW0tZ3JheWBcbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlcmVkIFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtYm9yZGVyLXdpZHRoXSBXaWR0aCBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlIFskcHJvdG90eXBlLWJvcmRlci10eXBlXSBUeXBlIG9mIHRoZSBib3JkZXJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXSBDb2xvciBvZiB0aGUgYm9yZGVyXG5AbWl4aW4gYm9yZGVyZWQoXG4gICR3aWR0aDogJHByb3RvdHlwZS1ib3JkZXItd2lkdGgsXG4gICR0eXBlOiAkcHJvdG90eXBlLWJvcmRlci10eXBlLFxuICAkY29sb3I6ICRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXG4pIHtcbiAgYm9yZGVyOiAkd2lkdGggJHR5cGUgJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQge1xuICAuYm9yZGVyZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNoYWRvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2hhZG93IHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3gtc2hhZG93YFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSAhZGVmYXVsdDtcblxuLy8vIFNoYWRvdyBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm94IHNoYWRvdyB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaGFkb3cgWyRwcm90b3R5cGUtYm94LXNoYWRvd10gQm94IFNoYWRvdyBvZiBhIGNvbXBvbmVudFxuQG1peGluIHNoYWRvdyhcbiAgJHNoYWRvdzogJHByb3RvdHlwZS1ib3gtc2hhZG93XG4pIHtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdyB7XG4gIC5zaGFkb3cge1xuICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zaGFkb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hhZG93O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1hcnJvd1xuLy8vL1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgYXJyb3dgIGRpcmVjdGlvblxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIHRoZSBBcnJvdywgYDAuNDM3NXJlbWAgYnkgZGVmYXVsdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuXG4vLy8gQ29sb3Igb2YgdGhlIEFycm93LCBgJGJsYWNrYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1hcnJvdyB7XG4gIEBlYWNoICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uIGluICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9ucyB7XG4gICAgLmFycm93LSN7JHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb259IHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZShcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1zaXplLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1jb2xvciwgXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zZXBhcmF0b3Jcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFsaWdubWVudCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aDogM3JlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVG9wIE1hcmdpbiBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGl0bGUgc2VwYXJhdG9yIFV0aWxpdHksIG1vc3RseSB1c2VkIHRvIHN0eWxlIHRoZSBtYWluIGhlYWRpbmcgb2YgYSBzZWN0aW9uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbGlnbiBbJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ25dIC0gc2VwYXJhdG9yIEFsaWdubWVudFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFskcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHRdIC0gV2lkdGhcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aF0gLSBIZWlnaHRcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgWyRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3BdIC0gTWFyZ2luIFRvcFxuQG1peGluIHNlcGFyYXRvciAoXG4gICRhbGlnbjogJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ24sXG4gICRoZWlnaHQ6ICRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodCxcbiAgJHdpZHRoOiAkcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aCxcbiAgJGJhY2tncm91bmQ6ICRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQsXG4gICR0b3A6ICRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3Bcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgdGV4dC1hbGlnbjogJGFsaWduICFpbXBvcnRhbnQ7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlKTtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGJhY2tncm91bmQ7XG4gICAgbWFyZ2luOiAkdG9wIGF1dG8gMDtcblxuICAgIEBpZiAkYWxpZ24gPT0gbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpZiAkYWxpZ24gPT0gcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zZXBhcmF0b3Ige1xuICAuc2VwYXJhdG9yLWNlbnRlciB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGNlbnRlcik7XG4gIH1cblxuICAuc2VwYXJhdG9yLWxlZnQge1xuICAgIEBpbmNsdWRlIHNlcGFyYXRvcihsZWZ0KTtcbiAgfVxuXG4gIC5zZXBhcmF0b3ItcmlnaHQge1xuICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWNlbnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXNlcGFyYXRvci1sZWZ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihsZWZ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXNlcGFyYXRvci1yaWdodCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzZXBhcmF0b3IocmlnaHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1wb3NpdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcG9zaXRpb24gaGVscGVyc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgcG9zaXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgZml4ZWQgcG9zaXRpb25pbmdcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1ICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb24gY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1wb3NpdGlvbmAsIHdoZXJlYXMgYWxsIHRoZSBvZmZzZXQgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBvc2l0aW9uYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBvc2l0aW9uIFtdIFBvc2l0aW9uIGNsYXNzZXMsIEVpdGhlciBgc3RhdGljYCwgYHJlbGF0aXZlYCwgYGFic29sdXRlYCBvciBgZml4ZWRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gVG9wIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUmlnaHQgb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gQm90dG9tIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBMZWZ0IG9mZnNldFxuQG1peGluIHBvc2l0aW9uKFxuICAkcG9zaXRpb24sXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHRvcDogJHRvcCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBsZWZ0OiAkbGVmdCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gdG9wIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLXRvcGBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC10b3AoXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCwgMCwgbnVsbCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gYm90dG9tIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLWJvdHRvbWBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC1ib3R0b20oXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgbnVsbCwgMCwgMCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcG9zaXRpb24ge1xuICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gIC5wb3NpdGlvbi1maXhlZC10b3Age1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgfVxuICAucG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gICAgICAgIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLW92ZXJmbG93XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBvdmVyZmxvdyBoZWxwZXIgY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgb3ZlcmZsb3dgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbikgIWRlZmF1bHQ7XG5cbi8vLyBPdmVyZmxvdyBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3Nlc1xuQG1peGluIG92ZXJmbG93KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdzogJG92ZXJmbG93ICFpbXBvcnRhbnQ7XG4gIEBpZiAkb3ZlcmZsb3cgPT0gJ3Njcm9sbCcge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiBob3Jpem9udGFsIGF4aXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzIChob3Jpem9udGFsIGF4aXMpXG5AbWl4aW4gb3ZlcmZsb3cteCgkb3ZlcmZsb3cpIHtcbiAgb3ZlcmZsb3cteDogJG92ZXJmbG93ICFpbXBvcnRhbnQ7XG4gIEBpZiAkb3ZlcmZsb3cgPT0gJ3Njcm9sbCcge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbiAgQGlmICRvdmVyZmxvdyA9PSAnc2Nyb2xsJyB7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1vdmVyZmxvdyB7XG4gIEBlYWNoICRvdmVyZmxvdyBpbiAkcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgICAub3ZlcmZsb3ctI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93KCRvdmVyZmxvdyk7XG4gICAgfVxuICAgIC5vdmVyZmxvdy14LSN7JG92ZXJmbG93fSB7XG4gICAgICBAaW5jbHVkZSBvdmVyZmxvdy14KCRvdmVyZmxvdyk7XG4gICAgfVxuICAgIC5vdmVyZmxvdy15LSN7JG92ZXJmbG93fSB7XG4gICAgICBAaW5jbHVkZSBvdmVyZmxvdy15KCRvdmVyZmxvdyk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tb3ZlcmZsb3ctI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy14LSN7JG92ZXJmbG93fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy15LSN7JG92ZXJmbG93fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZGlzcGxheVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZGlzcGxheSBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYGRpc3BsYXlgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGlzcGxheSBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLWRpc3BsYXlgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtdIERpc3BsYXkgY2xhc3Nlc1xuQG1peGluIGRpc3BsYXkoJGRpc3BsYXkpIHtcbiAgZGlzcGxheTogJGRpc3BsYXkgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXkge1xuICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgIC5kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LWRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYm9yZGVyLWJveFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIGJveC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGJveCB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLWJveCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ib3gge1xuICAuYm9yZGVyLWJveCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLWJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItYm94O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItbm9uZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIG5vbmUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgbm9uZSB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLW5vbmUge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ub25lIHtcbiAgLmJvcmRlci1ub25lIHtcbiAgICBAaW5jbHVkZSBib3JkZXItbm9uZTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ub25lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zaXppbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNwYWNpbmcgY2xhc3NlcyAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHNpemluZ2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zaXppbmc6IChcbiAgd2lkdGgsXG4gIGhlaWdodFxuKSAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgc2l6ZXMuXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKSAhZGVmYXVsdDtcblxuLy8vIE1heCBXaWR0aCAxMDAgdXRpbGl0eS5cbkBtaXhpbiBtYXgtd2lkdGgtMTAwIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBNYXggSGVpZ2h0IDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC1oZWlnaHQtMTAwIHtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2l6aW5nIHtcbiAgLy8gRWxlbWVudCBTaXppbmdcbiAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgQGVhY2ggJGxlbmd0aCwgJHBlcmNlbnRhZ2UgaW4gJHByb3RvdHlwZS1zaXplcyB7XG4gICAgICAuI3skc2l6aW5nfS0jeyRsZW5ndGh9IHtcbiAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNYXggd2lkdGggJiBoZWlnaHRcbiAgLm1heC13aWR0aC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC13aWR0aC0xMDA7XG4gIH1cbiAgLm1heC1oZWlnaHQtMTAwIHtcbiAgICBAaW5jbHVkZSBtYXgtaGVpZ2h0LTEwMDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBlYWNoICRzaXppbmcgaW4gJHByb3RvdHlwZS1zaXppbmcge1xuICAgICAgICAgICAgQGVhY2ggJGxlbmd0aCwgJHBlcmNlbnRhZ2UgaW4gJHByb3RvdHlwZS1zaXplcyB7XG4gICAgICAgICAgICAgIC4jeyRzaXplfS0jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAgICAgICAgICN7JHNpemluZ306ICRwZXJjZW50YWdlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc3BhY2luZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbnVtYmVyIG9mIHNwYWNlcnMgY291bnQgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMyAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBoZWxwZXIgbWl4aW4sIGFsbCB0aGUgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLW1hcmdpbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBNYXJnaW4gVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBNYXJnaW4gUmlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBNYXJnaW4gQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIE1hcmdpbiBMZWZ0XG5AbWl4aW4gbWFyZ2luKFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXRvcDogJHRvcCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIG1hcmdpbi1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBhZGRpbmcgaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wYWRkaW5nYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFBhZGRpbmcgVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBQYWRkaW5nIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gUGFkZGluZyBCb3R0b21cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gUGFkZGluZyBMZWZ0XG5AbWl4aW4gcGFkZGluZyhcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHBhZGRpbmctdG9wOiAkdG9wICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIE1hcmdpbiBjbGFzc2VzIGZvciBzcGVjaWZpYyBkaXJlY3Rpb24gcHJvcGVydGllc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyIFtdIERpcmVjdGlvblxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2VyIFtdIFNwYWNlclxuQG1peGluIG1hcmdpbi1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcikge1xuICBAaWYgKCRkaXIgPT0gdG9wKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKCR0b3A6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKCRyaWdodDogJHNwYWNlcik7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gYm90dG9tKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKCRib3R0b206ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGxlZnQpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oJGxlZnQ6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHJpZ2h0OiAkc3BhY2VyLCAkbGVmdDogJHNwYWNlcik7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gdmVydGljYWwpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHRvcDogJHNwYWNlciwgJGJvdHRvbTogJHNwYWNlcik7XG4gIH1cbn1cblxuLy8vIFBhZGRpbmcgY2xhc3NlcyBmb3Igc3BlY2lmaWMgZGlyZWN0aW9uIHByb3BlcnRpZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpciBbXSBEaXJlY3Rpb25cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNlciBbXSBTcGFjZXJcbkBtaXhpbiBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKSB7XG4gIEBpZiAoJGRpciA9PSB0b3ApIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCR0b3A6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygkcmlnaHQ6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGJvdHRvbSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGJvdHRvbTogJHNwYWNlcik7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gbGVmdCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGxlZnQ6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRyaWdodDogJHNwYWNlciwgJGxlZnQ6ICRzcGFjZXIpO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHZlcnRpY2FsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygkdG9wOiAkc3BhY2VyLCAkYm90dG9tOiAkc3BhY2VyKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc3BhY2luZyB7XG4gIEBmb3IgJHNwYWNlciBmcm9tIDAgdGhyb3VnaCAkcHJvdG90eXBlLXNwYWNlcnMtY291bnQge1xuXG4gICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAuI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgIHBhZGRpbmc6ICRzcGFjZXIgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAZWFjaCAkZGlyIGluICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGhvcml6b250YWwsIHZlcnRpY2FsKSB7XG4gICAgICAgIC8vIFRvcCBTaWRlXG4gICAgICAgIC4jeyRwcm9wfS0jeyRkaXJ9LSN7JHNwYWNlcn0ge1xuICAgICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHMpIHtcbiAgICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0ge1xuICAgICAgICAgICAgICBAZWFjaCAkcHJvcCBpbiAobWFyZ2luLCBwYWRkaW5nKSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAgICAgICAgICAgJi0jeyRwcm9wfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJHNwYWNlciAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2VyICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgcGF1c2UtcXVldWUtY2xhc3M6ICdpcy1wYXVzZWQnLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIFwiI3skb3V0cHV0fVwiO1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgLW11aS1pcy1mdW5jdGlvbigkbWFwKSB7XG4gICAgICAkbWFwOiAtbXVpLXNhZmUtY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuIEJ5IGRlZmF1bHQgYGxlZnRgIGFuZCBgcmlnaHRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbnVsbCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gIT0gbnVsbCwgJGRpcmVjdGlvbiwgaWYoJHN0YXRlID09IGluLCBsZWZ0LCByaWdodCkpO1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFtudWxsXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gT3BhY2l0eSB0byBlbmQgb24uIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZnJvbTogaWYoJGZyb20gIT0gbnVsbCwgJGZyb20sIGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSkpO1xuICAkdG86IGlmKCR0byAhPSBudWxsLCAkdG8sIGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCkpO1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogbnVsbFxuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICR0dXJuLW9yaWdpbjogaWYoJHR1cm4tb3JpZ2luICE9IG51bGwsICR0dXJuLW9yaWdpbiwgaWYoJHN0YXRlID09IGluLCBmcm9tLWJhY2ssIGZyb20tZnJvbnQpKTtcbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogLW11aS1zdHJpbmctc2FmZSgnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScpLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW251bGxdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC4gQnkgZGVmYXVsdCBgZnJvbS1iYWNrYCBhbmQgYGZyb20tZnJvbnRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IG51bGwsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkdHVybi1vcmlnaW46IGlmKCR0dXJuLW9yaWdpbiAhPSBudWxsLCAkdHVybi1vcmlnaW4sIGlmKCRzdGF0ZSA9PSBpbiwgZnJvbS1iYWNrLCBmcm9tLWZyb250KSk7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbbnVsbF0gLSBTaXplIHRvIHN0YXJ0IGF0LiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gU2l6ZSB0byBlbmQgYXQuIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS16b29tKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbnVsbCxcbiAgJHRvOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZyb206IGlmKCRmcm9tICE9IG51bGwsICRmcm9tLCBpZigkc3RhdGUgPT0gaW4sIDAsIDEpKTtcbiAgJHRvOiBpZigkdG8gIT0gbnVsbCwgJHRvLCBpZigkc3RhdGUgPT0gaW4sIDEsIDApKTtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS4gQnkgZGVmYXVsdCBgY3dgIGFuZCBgY2N3YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uICE9IG51bGwsICRkaXJlY3Rpb24sIGlmKCRzdGF0ZSA9PSBpbiwgY3csIGNjdykpO1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsIi5zbGljay1zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tcy10b3VjaC1hY3Rpb246cGFuLXk7dG91Y2gtYWN0aW9uOnBhbi15Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uc2xpY2stbGlzdHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjttYXJnaW46MDtwYWRkaW5nOjB9LnNsaWNrLWxpc3Q6Zm9jdXN7b3V0bGluZTowfS5zbGljay1saXN0LmRyYWdnaW5ne2N1cnNvcjpwb2ludGVyO2N1cnNvcjpoYW5kfS5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLC5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3R7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LnNsaWNrLXRyYWNre3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2xlZnQ6MDtkaXNwbGF5OmJsb2NrfS5zbGljay10cmFjazpiZWZvcmUsLnNsaWNrLXRyYWNrOmFmdGVye2Rpc3BsYXk6dGFibGU7Y29udGVudDonJ30uc2xpY2stdHJhY2s6YWZ0ZXJ7Y2xlYXI6Ym90aH0uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2t7dmlzaWJpbGl0eTpoaWRkZW59LnNsaWNrLXNsaWRle2Rpc3BsYXk6bm9uZTtmbG9hdDpsZWZ0O2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MXB4fVtkaXI9J3J0bCddIC5zbGljay1zbGlkZXtmbG9hdDpyaWdodH0uc2xpY2stc2xpZGUgaW1ne2Rpc3BsYXk6YmxvY2t9LnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1ne2Rpc3BsYXk6bm9uZX0uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1ne3BvaW50ZXItZXZlbnRzOm5vbmV9LnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZXtkaXNwbGF5OmJsb2NrfS5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZXt2aXNpYmlsaXR5OmhpZGRlbn0uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87fS5zbGljay1hcnJvdy5zbGljay1oaWRkZW57ZGlzcGxheTpub25lfSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNMSUNLIENPTlRST0wgT1ZFUlJJREVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIC5zbGljay1hcnJvdyB7XG4vLyB9XG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LXNpemU6IDBweDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICAvL3otaW5kZXg6IDk5OTk7XG59XG5cbi5zbGljay1wcmV2IHsgICAgIFxuICAgIGZvbnQtc2l6ZTogMHB4OyAgICBcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAyMCU7ICAgIFxufVxuXG4uc2xpY2stbmV4dCB7XG4gICAgcmlnaHQ6IC02cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAyMCU7ICAgIFxufVxuXG4uc2xpY2stZG90c3tcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG5cbiAgICBsaXtcbiAgICAgICAgaGVpZ2h0OjEwcHg7XG4gICAgICAgIHdpZHRoOjEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6NTAlO1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIFxuXG4gICAgICAgICYuc2xpY2stYWN0aXZle1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTsgXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuYnV0dG9ue1xuICAgIEBleHRlbmQgYnV0dG9uO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuXG4gICAgQGVhY2ggJHJvdyBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICAgJGxhYmVsOiBudGgoJHJvdywgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRyb3csIDIpO1xuICAgICAgICAmLiN7JGxhYmVsfSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRsYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhvbGxvd3tcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJi5ob2xsb3ctZmlsbHtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJjMztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRiYzM7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAgICAgICAgIEBlYWNoICRyb3cgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAgICAgICAgICAgICAgICRsYWJlbDogbnRoKCRyb3csIDEpO1xuICAgICAgICAgICAgICAgICAgICAkdmFsdWU6IG50aCgkcm93LCAyKTtcbiAgICAgICAgICAgICAgICAgICAgJi4jeyRsYWJlbH0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRsYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRsYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IFxuICAgICAgICB9XG4gICAgfVxufSIsIi8vIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9QWJyaWwrRmF0ZmFjZXxMYXRvOjQwMCw0MDBpLDcwMCw3MDBpJmRpc3BsYXk9c3dhcCcpO1xuLy8gQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Nb250c2VycmF0OjQwMCw0MDBpLDcwMCw3MDBpLDkwMCw5MDBpJmRpc3BsYXk9c3dhcCcpO1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0JyYW5kb24nO1xuICAgIHNyYzogdXJsKCdmb250cy9icmFuZG9uX3JlZy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKCdmb250cy9icmFuZG9uX3JlZy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdCcmFuZG9uJztcbiAgICBzcmM6IHVybCgnZm9udHMvYnJhbmRvbl9ibGstd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnZm9udHMvYnJhbmRvbl9ibGstd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5oMSwgLmgxLCBoMiwgLmgyLCBoMywgLmgzLCBoNCwgLmg0LCBwLCAucCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuaDEsIC5oMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg1MCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDgwKTtcbiAgICB9XG59XG5cbmgyLCAuaDIge1xuICAgIG1hcmdpbjogMCAwIHJlbS1jYWxjKDE2KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzgpO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICBmb250LXNpemU6IDcuNXZ3O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg1MCk7XG4gICAgfVxufVxuXG5oMywgLmgzIHtcbiAgICBtYXJnaW46IHJlbS1jYWxjKDEwKSAwIHJlbS1jYWxjKDMwKTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDM4KTtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5oNCwgLmg0IHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5wLCAucCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxufVxuXG4ucHJldGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAvLyB0aW1lIHtcbiAgICAvLyAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAvLyAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgLy8gfVxufVxuXG4ud3lzaXd5ZyB7XG4gICAgdWwge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50ZXh0LXdoaXRlIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbm1hcmsge1xuICAgIHBhZGRpbmc6IDAgMC4yZW07XG4gICAgYmFja2dyb3VuZDogJGJjMTtcbiAgICBjb2xvcjogJHdoaXRlO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR0xPQkFMIEVMRU1FTlRTIC0gU0lURSBXSURFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogJGJsYWNrO1xufVxuXG4vLyBSZW1vdmUgYmx1ZSBsaW5rcyBmcm9tIGlwaG9uZVxuYVtocmVmXj10ZWxde1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmRhcmt7XG5cdGJhY2tncm91bmQ6ICRiYzI7XG59XG5cbi5saWdodHtcblx0YmFja2dyb3VuZDogJGJjMTtcbn1cblxuXG4vL1RPRE86IHVwZGF0ZSB0aGlzIHRvIHdvcmsgd2l0aCBXWVNJV1lHIG9yIGtpdGNoZW4gc2luayB0eXBlc1xuXG4ucm93IHtcbiAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygkZ2xvYmFsX2d1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygkZ2xvYmFsX2d1dHRlciAvIDIpO1xuICBjbGVhcjogYm90aDtcbiAgXG4gIC5jb2x1bW57XG5cbiAgICAmLmZsZXhpYmxlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgICYuI3skYnJlYWtwb2ludH0tZmxleGlibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRicmVha3BvaW50fSB1cCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGV7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIC8vIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi5leHBhbmRlZCxcbiAgLnJvdyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgJi5ydGwge1xuICAgICAgLmNvbHVtbiB7IFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIH1cbiAgfVxufVxuXG5AZWFjaCAkcm93IGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAkbGFiZWw6IG50aCgkcm93LCAxKTsgJHZhbHVlOiBudGgoJHJvdywgMik7XG5cbiAgLmJnLSN7JGxhYmVsfSB7XG4gICAgYmFja2dyb3VuZDogJHZhbHVlO1xuICB9XG4gIC50ZXh0LSN7JGxhYmVsfSB7XG4gICAgY29sb3I6ICR2YWx1ZTtcbiAgICAvLyAqe1xuICAgIC8vICAgICBjb2xvcjogJHZhbHVlO1xuICAgIC8vIH1cbiAgfVxufVxuXG5hLmFkZHJlc3MgLmljb24ge1xuICBoZWlnaHQ6IDFlbTtcbiAgd2lkdGg6IDFlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG5hLnBob25lIC5pY29uIHtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiAxZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cblxuYS5lbWFpbCAuaWNvbiB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4uYmctZGFyay1ncmF5IHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNYXJnaW4gJiBQYWRkaW5nIENsYXNzZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAkc2lkZXM6IChcbiAgICBsZWZ0OiBsZWZ0LFxuICAgIHRvcDogdG9wLFxuICAgIHJpZ2h0OiByaWdodCxcbiAgICBib3R0b206IGJvdHRvbVxuICApO1xuXG4gICRwYWRtYXI6IChcbiAgICBhbGx3YXlzc21hbGw6IChcbiAgICAgIHNtYWxsOiAkZ2xvYmFsLW1hcmdpbioxLjUsXG4gICAgICBtZWRpdW06ICRnbG9iYWwtbWFyZ2luKjEuNSxcbiAgICAgIGxhcmdlOiAkZ2xvYmFsLW1hcmdpbioxLjUsXG4gICAgICB4bGFyZ2U6ICRnbG9iYWwtbWFyZ2luKjEuNSxcbiAgICApLFxuICAgIHNtYWxsOiAoXG4gICAgICBzbWFsbDogJGdsb2JhbC1tYXJnaW4qMS41LFxuICAgICAgbWVkaXVtOiAkZ2xvYmFsLW1hcmdpbioxLjUsXG4gICAgICBsYXJnZTogJGdsb2JhbC1tYXJnaW4qMixcbiAgICAgIHhsYXJnZTogJGdsb2JhbC1tYXJnaW4qMyxcbiAgICApLFxuICAgIGxhcmdlOiAoXG4gICAgICBzbWFsbDogJGdsb2JhbC1tYXJnaW4qMixcbiAgICAgIG1lZGl1bTogJGdsb2JhbC1tYXJnaW4qMyxcbiAgICAgIGxhcmdlOiAkZ2xvYmFsLW1hcmdpbio0LFxuICAgICAgeGxhcmdlOiAkZ2xvYmFsLW1hcmdpbio1LFxuICAgICksXG4gICAgeGxhcmdlOiAoXG5cdFx0c21hbGw6ICRnbG9iYWwtbWFyZ2luKjMsXG5cdFx0bWVkaXVtOiAkZ2xvYmFsLW1hcmdpbio0LFxuXHRcdGxhcmdlOiAkZ2xvYmFsLW1hcmdpbio1LFxuXHRcdHhsYXJnZTogJGdsb2JhbC1tYXJnaW4qNixcbiAgICApLFxuICApO1xuXG4gIC5uby1wYWQge1xuXHQgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuXG5cdC5wYWR7XG5cdFx0cGFkZGluZzogJGdsb2JhbC1tYXJnaW4qNCAwO1xuICB9XG5cblxuICAuZ2VuLXBhZHtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgLnBhZC10b3AtbW9iaWxlLW9ubHl7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIHNtYWxsKS8xLjUpO1xuICAgIH1cbiAgICAubW9iaWxlLXBhZHtcbiAgICAgIC8vIC5jb2x1bW57XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIHNtYWxsKS8xLjUpO1xuXHRcdFx0Ly8gfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRzaXplLCAkYnJlYWtwb2ludHMgaW4gJHBhZG1hciB7XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGFtb3VudCBpbiAkYnJlYWtwb2ludHMge1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50IHVwKSB7XG5cbiAgICAgICAgLnBhZC0jeyRzaXplfXtcbiAgICAgICAgICBwYWRkaW5nOiAkYW1vdW50IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm1hci0jeyRzaXplfXtcbiAgICAgICAgICBtYXJnaW46ICRhbW91bnQgMDtcbiAgICAgICAgfVxuXG5cdFx0XHRcdEBlYWNoICRzaWRleCwgJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgXHQucGFkLSN7JHNpZGV9IHsgcGFkZGluZy0jeyRzaWRlfTogJGFtb3VudDsgfVxuXHRcdFx0XHR9XG5cbiAgICAgICAgQGVhY2ggJHNpZGV4LCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgIC5wYWQtI3skc2lkZX0tI3skc2l6ZX0geyBwYWRkaW5nLSN7JHNpZGV9OiAkYW1vdW50OyB9XG4gICAgICAgIH1cbiAgICAgICAgLm1hci0jeyRzaXplfSB7IG1hcmdpbjogJGFtb3VudDsgfVxuICAgICAgICBAZWFjaCAkc2lkZXgsICRzaWRlIGluICRzaWRlcyB7XG4gICAgICAgICAgLm1hci0jeyRzaWRlfS0jeyRzaXplfSB7IG1hcmdpbi0jeyRzaWRlfTogJGFtb3VudDsgfVxuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNT1RJT04gVUkgQ1VTVE9NIEFOSU1BVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRmFkZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4uYW5pbWF0ZS1mYWRlLWluIHtcbiAgICBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKGZhZGUoMCwxKSwgc2xpZGUpO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG59XG5cblxuLy8gWm9vbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4uYW5pbWF0ZS16b29tIHtcbiAgICBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHpvb20pO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gc2hvdyB0aGUgbGF1eW91dC9kZXNpZ24gZ3JpZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4jYmctZ3JpZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDowO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogOTk5O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjtcblxuICAgICYuZXhwYW5kZWR7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGRpdntcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBvdXRsaW5lOiAwLjI1cHggc29saWQgcmdiYSgjMDAwMDAwLCAuMSk7XG5cbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vbG9vcCBicmVha3BvaW50c1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0tY2FsYyhtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIHNtYWxsKS8yKTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbS1jYWxjKG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgc21hbGwpLzIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYShyZWQsIDAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZChvZGQpOmJlZm9yZXtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0tY2FsYyhtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIHNtYWxsKS8yKTtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZChvZGQpOmFmdGVye1xuICAgICAgICAgICAgbGVmdDogcmVtLWNhbGMobWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBzbWFsbCkvMik7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbik6YWZ0ZXJ7XG4gICAgICAgICAgICByaWdodDogcmVtLWNhbGMobWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBzbWFsbCkvMik7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbik6YmVmb3Jle1xuICAgICAgICAgICAgbGVmdDogcmVtLWNhbGMobWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBzbWFsbCkvMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRvZ2dsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgKyAjYmctZ3JpZC10b2dnbGUge1xuICAgICAgICAgICAgY29sb3I6IGdyZWVuO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gQWxsb3dzIGZvciBvYmplY3QtZml0IG9uIGltYWdlcyB3aXRoIGllIGZhbGxiYWNrXG4uaW1nLXdyYXAge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmNvbXBhdC1vYmplY3QtZml0IHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICAuaW1nLW9iaiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmltZy1vYmoge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbn1cblxuLy8gQWRkcyBzbGlnaHQgem9vbSBvbiBob3ZlciBpZiB3aXRoaW4gYSBsaW5rXG5hIHtcbiAgICAuaW1nLXdyYXAsICYuaW1nLXdyYXAge1xuICAgICAgICAuaW1nLW9iaiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLmljb24gc3ZnIHtcbi8vICAgICB1c2Uge1xuLy8gICAgICAgICBzdHJva2U6ICMwZjA7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBzdmcge1xuLy8gICAgICosIGcsIHBhdGgge1xuLy8gICAgICAgICBzdHJva2U6IGluaGVyaXQ7XG4vLyAgICAgfVxuLy8gfVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gMTAgZ3JpZCBzdHJ1Y3R1cmVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHNpemVzOiAoXG4gICAgc21hbGwsXG4gICAgbWVkaXVtLFxuICAgIGxhcmdlXG4pO1xuXG4kZ3JpZHM6IChcbiAgICAxMFxuKTtcblxuXG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkc2l6ZXN7XG5cbiAgICAgICAgLmdyaWQtMTB7XG4gICAgICAgIFxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSB1cCkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGVhY2ggJGdyaWQgaW4gJGdyaWRze1xuXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWR7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRzaXplfS0jeyRpfXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkaS8kZ3JpZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiBcbiAgICB9XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUFERVJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI2hlYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgLy8gYW5pbWF0aW9uOiBzbGlkZURvd24gMC4zcyBlYXNlLWluO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkYmMyO1xuXG4gICAgI3NpdGV3aWRlLW5vdGljZSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEyKSAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwwLjE1KTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMTVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5yb3cge1xuICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMTVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgc3ZnICoge1xuICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyNSkgJGdsb2JhbF9wYWRkaW5nIC8gMiByZW0tY2FsYygyNyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4wMjUpO1xuXG4gICAgICAgICAgICAgICAgc3ZnICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYmMxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdmcsIGltZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxOSk7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyOCk7XG4gICAgICAgICAgICB9ICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNtZW51LXRvZ2dsZSB7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYyg2MSk7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDIwKTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjYpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDI2KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbWFpbi1tZW51IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwKSAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJjMjtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHNvbGlkIHJlbS1jYWxjKDEzOSkkYmMyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7ICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7ICAgXG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoLSRnbG9iYWxfZ3V0dGVyIC8gMik7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7ICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICB1bCB7ICAgXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNSU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNjU1YjViO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyOCkgJGdsb2JhbC1wYWRkaW5nKjAuNzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAoMjQgLyAxOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMWVtIHJnYmEoJHdoaXRlLCAwLjI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJi5wcmltYXJ5IGEge1xuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5zZWNvbmRhcnkgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmJ1dHRvbi5ob2xsb3c7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5hY2NvdW50IGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLndwbWVudWNhcnRsaSB7XG4gICAgICAgICAgICAgICAgICAgIC5lbXB0eS13cG1lbnVjYXJ0LXZpc2libGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uY2FydGNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiYzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxLjY2N2VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjY2N2VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGE6aG92ZXIsIGE6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uY2FydGNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICAgICAgPiBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuNWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDJweCAycHggMCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDkwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVkoMC4zZW0pIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuM2VtKSByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjJlbSkgc2NhbGVZKC0xKSByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KSB0cmFuc2xhdGVZKDAuM2VtKSByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogM3B4IDVweCAwICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogKzk5OTk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE4MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKC0xMCkgMCAwIHJlbS1jYWxjKC05MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwYWRkaW5nOiByZW0tY2FsYygxMCkgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAuNXJlbSAwLjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkYmxhY2sgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg4MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSkgcmVtLWNhbGMoNSkgMCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgcmVtLWNhbGMoNSkgcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6b25seS1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYyg1KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnByaW1hcnksICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDIpICRnbG9iYWwtcGFkZGluZyAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAmLnByaW1hcnksICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAvLyAgICAgJiArIC5wcmltYXJ5LCAmICsgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZWZ0LW1lbnUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJpZ2h0LW1lbnUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuXG4gICAgICAgIC50b3BiYXItdGl0bGUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNDVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgICAgICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1yZXNwb25zaXZlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggMCAkdG9wYmFyLXJlc3BvbnNpdmUtY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAwIDE0cHggMCAkdG9wYmFyLXJlc3BvbnNpdmUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBURVhUIFZBUklBVElPTlNcblxuICAgICYubGlnaHQtdGV4dCB7XG4gICAgICAgIC5sb2dvIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJsYWNrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEuMDI1KTtcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgc3ZnICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJjMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNtYWluLW1lbnUgdWwgbGkge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIC8vICAgICB0ZXh0LXNoYWRvdzogMCAwIDFlbSByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByaW1hcnksICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkZ2xvYmFsLXBhZGRpbmcgcmVtLWNhbGMoNjApIDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kYXJrLXRleHQge1xuICAgICAgICAjbWFpbi1tZW51IHVsIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgdGV4dC1zaGFkb3c6IDAgMCAxZW0gcmdiYSgkYmxhY2ssIDAuMjUpO1xuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwgbGkgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgIC8vICNtYWluLCAjZm9vdGVyIHtcbiAgICAvLyAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgLy8gfVxuXG4gICAgYm9keS5zaG93LW1lbnUge1xuICAgICAgICAjaGVhZGVyIHtcblxuICAgICAgICAgICAgI21haW4tbWVudSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gI21haW4sICNmb290ZXIge1xuICAgICAgICAvLyAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgLy8gfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAudG9wYmFyLXJlc3BvbnNpdmUtbGlua3Mge1xuICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpZiAkdG9wYmFyLXJlc3BvbnNpdmUtYW5pbWF0aW9uLXR5cGUgPT0gc2xpZGUtZG93biB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNsaWRlRG93biAxcyBlYXNlLWluO1xuICAgICAgICB9IEBlbHNlIGlmICR0b3BiYXItcmVzcG9uc2l2ZS1hbmltYXRpb24tdHlwZSA9PSBmYWRlLWluIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2UtaW47XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LnNjcm9sbGVkIHtcbiAgICAjaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssMC4yKTsgICAgICAgXG5cbiAgICAgICAgI21haW4tbWVudSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCByZW0tY2FsYyg4OSkgJGJjMjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmRhcmstdGV4dCB7XG4gICAgICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICAgICAgc3ZnICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4wMjUpO1xuICAgIFxuICAgICAgICAgICAgICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYmMxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgI21haW4tbWVudSB1bCBsaSB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmMyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgICAgIC8vICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGV4dC1zaGFkb3c6IDAgMCAxZW0gcmdiYSgkd2hpdGUsIDAuMjUpO1xuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgICYucHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuYnV0dG9uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5idXR0b24uaG9sbG93O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LmxvZ2dlZC1pbiB7XG4gICAgI3dwYWRtaW5iYXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuXG4gICAgI21haW4tbWVudSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4MnB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0NnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgzcHgpIGFuZCAobWF4LXdpZHRoOiAxMDYzcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICB1bCBsaS5hY2NvdW50IGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGdsb2JhbC1wYWRkaW5nKjAuNzU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmJvZHkubWVudS1vcGVuICNoZWFkZXIge1xuICAgIC5vdmVybGF5IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgI21haW4tbWVudSB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tZW51LXRvZ2dsZSB7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciBkaXYge1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiAkYmMxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY3VycmVudC1tZW51LWl0ZW0gYSxcbi5jdXJyZW50LXBhZ2UtYW5jZXN0b3IgYSxcbi5jdXJyZW50LXBvc3QtYW5jZXN0b3IgYSB7IFxuICAgIGNvbG9yOiAkYmMxICFpbXBvcnRhbnQ7XG4gfSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1BSU5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI21haW4ge1xuICAgIHotaW5kZXg6IDI7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDg5LjkxKTtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgY29sb3I6ICRibGFjaztcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUFERVJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI2Zvb3RlciB7XG5cdGJhY2tncm91bmQ6ICRmb290ZXItYmc7XG5cdGNvbG9yOiAkZm9vdGVyLWNvbG9yO1xuXHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNTcpO1xuXHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNjAtMjApO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNjAtNjApO1xuXHR9XG5cdFxuXHQucm93IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG5cdFx0Ly8gQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHQvLyBcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2MCk7XG5cdFx0Ly8gfVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRiYzE7XG5cblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsIGxpIGEge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdC5sb2dvIGltZyB7XG5cdFx0XHR3aWR0aDogMjAwcHg7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Lm1lbnUge1xuXHRcdFx0bWFyZ2luOiAwIHJlbS1jYWxjKC0kZ2xvYmFsX2d1dHRlciAvIDIpO1xuXHRcdH1cblxuXHRcdC5zb2NpYWwgYSB7XG5cdFx0XHRzdmcge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygyNCk7XG5cdFx0XHRcdGZpbGw6ICR3aGl0ZTtcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW47XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgc3ZnIHtcblx0XHRcdFx0ZmlsbDogJGJjMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmdyZWNhcHRjaGEtYmFkZ2Uge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iLCIkZ2xvYmFsLW1hcmdpbi1taW51czogJGdsb2JhbC1tYXJnaW4qLTE7XG5cblxuXG4uY2FyZHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLmRvdWJsZXtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlubmVyLWNvbnRlbnR7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzV2dztcbiAgICAgICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXNlY3Rpb257XG4gICAgICAgICYgJl9faW1hZ2V7XG4gICAgICAgICAgICBtYXJnaW46ICRnbG9iYWwtbWFyZ2luLW1pbnVzICRnbG9iYWwtbWFyZ2luLW1pbnVzICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luLW1pbnVzO1xuICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwdmg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgJi5jb3ZlcntcbiAgICAgICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6MDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJiAmX190aXRsZXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBoMyxoNHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYgJl9fZGF0ZXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luLzI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgfVxuICAgICAgICAmICZfX2V4Y2VycHR7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICAgICAgJiAmX19hdXRob3J7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cblxuICAgICAgICAmICZfX2J1dHRvbntcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9IFxufSIsIiR3aGl0ZTogJHdoaXRlO1xuJHBhZ2luYXRpb24tcHJpbWFyeS1jb2xvcjogJGJjMjtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtY29sb3I6ICRiYzE7XG4kcGFnaW5hdGlvbi1yYWRpdXM6IDRweDtcblxuXG5ib2R5IC5wYWdpbmF0aW9ue1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIFxuICAgIGxpe1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG4ucGFnaW5hdGlvbi1wb2ludGVkIHtcbiAgICBcblxuXG5cbiAgLnBhZ2luYXRpb24tcG9pbnRlZC1idXR0b24tYSxcbiAgLnBhZ2luYXRpb24tcG9pbnRlZC1idXR0b24gYXtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIG1hcmdpbjogMCAwLjFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1wcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgb3V0bGluZTogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRwYWdpbmF0aW9uLXByaW1hcnktY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG5cblxuICAgIC5wYWdpbmF0aW9uLXBvaW50ZWQtYnV0dG9ue1xuICAgIC5wYWdlLW51bWJlcnMuZG90c3tcbiAgICAgIEBleHRlbmQgLnBhZ2luYXRpb24tcG9pbnRlZC1idXR0b24tYTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHBhZ2luYXRpb24tcHJpbWFyeS1jb2xvciwgNTAlKTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIHNwYW4uY3VycmVudCB7XG4gICAgQGV4dGVuZCAucGFnaW5hdGlvbi1wb2ludGVkLWJ1dHRvbi1hO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1jdXJyZW50LWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcGFnaW5hdGlvbi1jdXJyZW50LWNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxuXG4gIC5uZXh0e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyAwIDAgJHBhZ2luYXRpb24tcmFkaXVzO1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkIGxpZ2h0ZW4oJHBhZ2luYXRpb24tcHJpbWFyeS1jb2xvciwgMTAlKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IC0xN3B4O1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItdG9wOiAxN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICRwYWdpbmF0aW9uLXByaW1hcnktY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gICAgfVxuICB9XG5cbiAgLnByZXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIEBleHRlbmQgLnBhZ2luYXRpb24tcG9pbnRlZC1idXR0b247XG4gICAgYm9yZGVyLXJhZGl1czogMCAkcGFnaW5hdGlvbi1yYWRpdXMgJHBhZ2luYXRpb24tcmFkaXVzIDA7XG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgbGlnaHRlbigkcGFnaW5hdGlvbi1wcmltYXJ5LWNvbG9yLCAxMCUpO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiOyAvL3JlbW92ZXMgdGhlIGFycm93XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IC0xN3B4O1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAkcGFnaW5hdGlvbi1wcmltYXJ5LWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVST1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4jaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAvLyBDb250ZW50XG4gICAgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSguM3MsIGVhc2UpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTIwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2F0ZWdvcnkge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDgwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcqMC41ICRnbG9iYWwtcGFkZGluZyoxLjU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmV0aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG5cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xNDI4NTc1ZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcC5wYWdlLWludHJvIHtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5yZWNpcGUtZGV0YWlsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAuaWNvbiB7XG5cbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpe1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW50cm9cbiAgICAgICAgaDQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSArIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0yMik7XG4gICAgICAgIH1cblxuICAgICAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b25ncm91cCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIC8vd2lkdGg6IDYwJTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICAmLnJpZ2h0e1xuICAgICAgICAgIG1hcmdpbjogMCAwIDRyZW07XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgICAgbWFyZ2luOiA3cmVtIDAgMnJlbTtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIGF7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgXG4gICAgLy8gQmFja2dyb3VuZCBJbWFnZVxuICAgIC5oZXJvLWltYWdlLXdyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIFxuICAgICAgICB2aWRlbyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIC1vLW9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAxOyAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC52aWRlby13cmFwcGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwjMDAyZjRiLCNkYzQyMjUpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVyby1pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbW92ZSA0MHMgZWFzZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgIC5oZXJvLWltYWdlIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2xpY2stYWN0aXZlLFxuICAgICAgICAmW3RhYmluZGV4PVwiMFwiXSB7XG4gICAgICAgICAgICAuaGVyby1pbWFnZSB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDQwcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVEVYVCBWQVJJQVRJT05TXG5cbiAgICAmLmxpZ2h0LXRleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgLmhlcm8taW1hZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMyO1xuXG4gICAgICAgICAgICAuaGVyby1pbWFnZSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoJGJsYWNrLCAwLjQpIDAlLCByZ2JhKCRibGFjaywwKSAxMDAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRhcmstdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgXG4gICAgICAgIC5oZXJvLWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBcbiAgICAgICAgICAgIC5oZXJvLWltYWdlIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgkd2hpdGUsIDAuNCkgMCUsIHJnYmEoJHdoaXRlLDApIDEwMCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgXG4gICAvLyAmLmJnLWRhcmstZ3JheXtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiA1cHggc29saWQgJGJjMTtcbiAgICAvL31cbiAgXG4gICAgLy8gSEVJR0hUIFZBUklBVElPTlNcblxuICAgICYuc21hbGwge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg1MCkgMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDgwKSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICsgLnBhZ2VidWlsZGVyIHNlY3Rpb246Zmlyc3QtY2hpbGQuYmctd2hpdGUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgICAgID4gLnJvdyA+IC5jb2x1bW4gPiAucm93ID4gLmNvbHVtbiA+IC5wYWQtc21hbGwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5tZWRpdW0taGVpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbS1jYWxjKDYyNSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoMjApIDAgcmVtLWNhbGMoMTIwKTtcbiAgXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoODUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICBcbiAgICAmLmZ1bGwtaGVpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICB9XG4gIFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4NSk7XG4gIFxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnZoO1xuICAgICAgICAgICAgfVxuICBcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXZoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5oZXJvLWhvbWV7XG4gICAgICAgIHBhZGRpbmc6IDByZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC4yKTtcbiAgICAgICAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCAxMDBweCAxMDBweCByZ2JhKCRibGFjaywwLjIpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLy8gdGV4dC1zaGFkb3c6IDFweCAxcHggMTBweCByZ2JhKCRibGFjaywwLjIpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDMwKTsgICAgICAgICBcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJldGl0bGUsIC5zdWJ0aXRsZSB7XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIC5wcmV0aXRsZSB7XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDcwdnc7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDM5cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgLnN1YnRpdGxlIHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTB2dztcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICBwe1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zaW5nbGV7XG5cbiAgICAgIC5yb3cgeyAgICAgICAgXG4gICAgICAgICAgLmNvbHVtbntcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5oZXJvLWNvbnRlbnR7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAmLXRvcHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAgICAgICAgXG4gICAgICAgICAgICAgIC5yb3ctcGFnZS10aXRsZXsgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgXG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKXtcbiAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICA0NS4wNjI1cmVtO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApe1xuICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogIDQ2LjA2MjVyZW07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAuY29udGVudHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDQuNHJlbSAwIDMuN3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIFxuICBcbiAgICAgICAgICAgICAgICAgICAgICAucHJldGl0bGV7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAucmV2aWV3LWluZm97XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gICAgICAgIFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICB9XG4gICAgICAgICAgJi1ib3R0b217XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgLnByb2R1Y3QtaGVyby1wcmljZXtcbiAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogIDQ3LjA2MjVyZW07XG4gICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbSAwO1xuICBcbiAgICAgICAgICAgICAgICAgIGgze1xuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgXG4gICAgICAgICAgfVxuICBcbiAgICAgIH1cbiAgICAgIC5oZXJvLWltYWdlLXdyYXBwZXJ7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCl7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgXG4gICAgICAgICAgLmhlcm8taW1hZ2V7XG4gICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApe1xuICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDo0NTBweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgfVxuICB9XG4gIFxuICBAa2V5ZnJhbWVzIGhlcm9JbWFnZSB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgaGVyb01hc2sge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gIFxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgfVxuICBcbiAgLnNjcm9sbC1idG17XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMxOyAgIFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZzogMS41cmVtIDAgMnJlbTtcbiAgICAgIGF7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQmViYXMgTmV1ZSc7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogXCJcXDI1QkVcIjsgXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgYm90dG9tOiAtMTZweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICBsZWZ0OiA0OS41JTtcbiAgICAgICAgICB9XG4gIFxuICAgICAgfVxuICB9XG5cbi8vICAgI2hlcm8uc2luZ2xlIC5oZXJvLWNvbnRlbnQge1xuLy8gICAgICAgbWFyZ2luLWxlZnQ6IC0yMDBweDtcbi8vICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xuLy8gICAgICAgICAgIG1hcmdpbjogMHB4O1xuLy8gICAgICAgICAgIC5tZWRpdW0tOSB7XG4vLyAgICAgICAgICAgICAgIHdpZHRoOiA1OCU7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICB9XG5cbkBrZXlmcmFtZXMgbW92ZSB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1JWElOU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBCb3JkZXIgcmFkaXVzXG5AbWl4aW4gcmFkaXVzKCRzaXplKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHNpemUgKyByZW07XG59XG5cbi8vIGljb24gc2l6ZXIgKHdoZW4gdXNpbmcsIG5vIG5lZWQgZm9yIHlvdSB0byBwdXQgcmVtIGUuZy4gQGluY2x1ZGUgaWNvbnNpemUoMSk7ID0gd2lkdGgmaGVpZ2h0OiAxcmVtO1xuQG1peGluIHNpemVyKCRzaXplKSB7XG4gICAgd2lkdGg6ICRzaXplICsgcmVtO1xuICAgIGhlaWdodDogJHNpemUgKyByZW07XG59XG5cbi8vIEJhY2tncm91bmRcbkBtaXhpbiBiZygkc2l6ZSkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLy8gRHJvcHNoYWRvd1xuQG1peGluIGRyb3BzaGFkb3coJGNvbG9yKSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMnB4IDMwcHggMHB4IHJnYmEoJGNvbG9yLDAuMSk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwcHggMnB4IDMwcHggMHB4IHJnYmEoJGNvbG9yLDAuMSk7XG4gICAgYm94LXNoYWRvdzogMHB4IDJweCAzMHB4IDBweCByZ2JhKCRjb2xvciwwLjEpO1xufVxuXG4vLyBQbGFjZWhvbGRlclxuQG1peGluIHBsYWNlaG9sZGVyKCRjb2xvcikge1xuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE5KyAqL1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJRSAxMCsgKi9cbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICA6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG59XG5cbi8vIFRleHQgSnVzdGlmeVxuQG1peGluIGp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xufVxuXG4vLyBGaXggZmlyZWZveCBzZWxlY3QgYm94ZXNcbkBtaXhpbiBtb3otc2VsZWN0IHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgdGV4dC1pbmRlbnQ6IDAuMDFweDtcbiAgICB0ZXh0LW92ZXJmbG93OiAnJztcbn1cblxuLy8gQW5pbWF0ZVxuQG1peGluIGFuaW1hdGUoJHRpbWUsICRlYXNpbmcpIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRpbWUgJGVhc2luZztcblxuICAgIC8vIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuQG1peGluIGN1cnYoJHRpbWUpIHtcbiAgICBAaW5jbHVkZSBhbmltYXRlKCR0aW1lLCBjdWJpYy1iZXppZXIoLjE5LDEsLjIyLDEpKTtcbn1cblxuLy8gRGVsYXlcbkBtaXhpbiBhbmltYXRlRGVsYXkoJHRpbWUpIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdGltZTtcbn1cblxuLy8gQ2xlYXJmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi8vIFZlcnRpY2FsbHkgYWxpZ24gc29tZSAtIG5vdGUgcGFyZW50IG5lZWRzIHBvc2l0aW9uOiByZWxhdGl2ZTtcbkBtaXhpbiB2YWxpZ24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vIENlbnRlcmFsbHkgYWxpZ24gc29tZXRoaW5nIC0gbm90ZSBwYXJlbnQgbmVlZHMgcG9zaXRpb246IHJlbGF0aXZlO1xuQG1peGluIGNlbnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLyBNYWtlIGltYWdlcyBoYXZlIGEgbmljZSBlZmZlY3RcbkBtaXhpbiBtYWdpYyB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMzAlKTtcbiAgICBmaWx0ZXI6IGNvbnRyYXN0KC00MCUpO1xufVxuXG4vLyBHcmFkaWVudHNcbi8vIC0tLS0tLVxuXG4vLyBFWEFNUExFIC0tLS0gIEBpbmNsdWRlIGdyYWQoJGJsYWNrLCRibGFjayx0b3AsYm90dG9tLDEwJSwxMDAlKTtcblxuQG1peGluIGdyYWQoJHN0YXJ0LCAkZmluaXNoLCAkZGlyMSwgJGRpcjIsICRzdHJlbmd0aDEsJHN0cmVuZ3RoMikge1xuICAgIGJhY2tncm91bmQ6ICRzdGFydDsgLyogRmFsbGJhY2sgKi9cbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgkZGlyMSwgJHN0YXJ0ICRzdHJlbmd0aDEsICRmaW5pc2ggJHN0cmVuZ3RoMik7IC8qIEZGMy42LTE1ICovXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJGRpcjEsICRzdGFydCAkc3RyZW5ndGgxLCRmaW5pc2ggJHN0cmVuZ3RoMik7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvICRkaXIyLCAkc3RhcnQgJHN0cmVuZ3RoMSwkZmluaXNoICRzdHJlbmd0aDIpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbn1cblxuQG1peGluIGdyYWQtaGVybyB7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKCRiYzEsIDApIDAlLCByZ2JhKCRiYzEsIDAuMSkgMTAlLCByZ2JhKCRiYzEsIDEpIDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgkYmMxLCAwKSAwJSxyZ2JhKCRiYzEsIDAuMSkgMTAlLHJnYmEoJGJjMSwgMSkgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgkYmMxLCAwKSAwJSxyZ2JhKCRiYzEsIDAuMSkgMTAlLHJnYmEoJGJjMSwgMSkgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMWEwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTkgKi9cbn1cblxuLy8gR29lcyBUb3AgdG8gQm90dG9tXG5AbWl4aW4gZ3JhZC1kYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmMxOyAvKiBGYWxsYmFjayAqL1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgJGJjMSAwJSwgJGJjMyAxMDAlKTsgLyogRkYzLjYtMTUgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sICRiYzEgMCUsJGJjMyAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkYmMxIDAlLCRiYzMgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMDAxNzM4JywgZW5kQ29sb3JzdHI9JyMwMDBiMWEnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi05ICovXG59XG5cbi8vIEdvZXMgTGVmdCB0byBSaWdodFxuQG1peGluIGdyYWQtbGlnaHQge1xuICAgIGJhY2tncm91bmQ6ICRiYzI7IC8qIEZhbGxiYWNrICovXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJGJjMiAwJSwgJGJjMSAxMDAlKTsgLyogRkYzLjYtMTUgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkYmMyIDAlLCRiYzEgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkYmMyIDAlLCRiYzEgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMDAyZDZlJywgZW5kQ29sb3JzdHI9JyMwMDE3MzgnLEdyYWRpZW50VHlwZT0xICk7IC8qIElFNi05ICovXG59XG5cbkBtaXhpbiBncmFkLXRleHQge1xuICAgIEBpbmNsdWRlIGdyYWQtbGlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbiIsIi5hcmNoaXZlX2ZpbHRlcntcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgMDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGxhYmVse1xuICAgICAgICBAZXh0ZW5kIC5oNDtcbiAgICB9XG4gICAgc2VsZWN0e1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDJyZW07XG4gICAgICAgIG1pbi13aWR0aDogMTJyZW07XG4gICAgfVxuXG4gICAgLmJ1dHRvbntcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgfVxufSIsIi53b29jb21tZXJjZSwgLndvb2NvbW1lcmNlLXBhZ2Uge1xuXG4gICAgLmNhdGVnb3J5LXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiA1cmVtIDAgLTVyZW07XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDM1KTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJjMTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMSAvIDIyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LFxuICAgIGEuYnV0dG9uLFxuICAgIGJ1dHRvbi5idXR0b24sXG4gICAgaW5wdXQuYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJjMSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBAZXh0ZW5kIGEuYnV0dG9uO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBkaXYucHJvZHVjdCB7XG4gICAgICAgIC5wcm9kdWN0X3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi5pbWFnZXMud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0cyB1bCxcbiAgICB1bC5wcm9kdWN0cyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICBsaS5wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAwcHggMXB4IDByZW0gMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC8vd2lkdGg6IDMzJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLDAuNSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoJGJsYWNrLDAuNzUpIDAlLCByZ2JhKCRibGFjaywwKSAxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTI7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcbiAgICAgICAgICAgICAgICBoMyxcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzKSAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYyg4MCk7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuMTVzIGVhc2UtaW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDY5KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNyk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEhvdmVyIGVmZmVjdHNcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAzcyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNGVtO1xuICAgICAgICAgICAgICAgIC8qIG1hcmdpbi1yaWdodDogNXJlbTsgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAtNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiA0MXB4IDk4cHggMzAwcHggMTk0cHggcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgICAgICAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDQxcHggOThweCAzMDBweCAxOTRweCByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDQxcHggOThweCAzMDBweCAxOTRweCByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGF5b3V0IGZpeGVzICYgQm9yZGVyIG92ZXJyaWRlc1xuICAgICAgICAmLmNvbHVtbnMtMiwgJi5jb2x1bW5zLTMge1xuICAgICAgICAgICAgbGkucHJvZHVjdCB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkgYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgxKSBhIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sdW1ucy0yIHtcbiAgICAgICAgICAgIGxpLnByb2R1Y3Qge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWxhc3QtY2hpbGQoMikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4pIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4tMSkgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sdW1ucy0zIHtcbiAgICAgICAgICAgIGxpLnByb2R1Y3Qge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWxhc3QtY2hpbGQoMikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybi0xKSBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzMuMzMzJTtcblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgzKSBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbikgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzbi0yKSBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiB1bC5wcm9kdWN0cyB7XG4gICAgICAgIG1hcmdpbjogcmVtLWNhbGMoODApIDA7XG4gICAgfVxufVxuXG4ucnAtdGV4dCB7XG4gICAgY29sb3I6ICNmYTY1MDAgIWltcG9ydGFudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gICAgLyogZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7ICovXG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMzFweDtcbn1cblxuLnJlY2lwZSB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndvb2NvbW1lcmNlIGEuYnV0dG9uLFxuLndvb2NvbW1lcmNlIC5idXR0b24gYSB7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5wcm9kdWN0LWNhdC1idXR0b24ge1xuICAgIGNvbG9yOiAjMGIwYjA3ICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjYxOGVtIDNlbSAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtM2VtICFpbXBvcnRhbnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzOTlweCkge1xuICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NTBweCkge1xuICAgICAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5yZXNwb25zaXZlLWVtYmVkLFxuLmZsZXgtdmlkZW8ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8vIFByb2R1Y3RzIHNlbGVjdCBkcm9wZG93biBvcHRpb25cbi53b29jb21tZXJjZSAud29vY29tbWVyY2Utb3JkZXJpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFByb2R1Y3RzIGNvdW50ZXJcbi53b29jb21tZXJjZSAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ud29vY29tbWVyY2UuY29sdW1ucy0yIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5wcm9kdWN0LWgxIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmE2NTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnJlbGF0ZWQtcHJvZHVjdHMge1xuICAgIHVsIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMHB4IDAuMiUgMHJlbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC00ZW0gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi50eHQtY29sIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xuICAgIG1hcmdpbjogMHB4IDAuMiUgMC4xNXJlbSAwICFpbXBvcnRhbnQ7XG59XG5cbi53b29jb21tZXJjZSAjY29udGVudCBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyxcbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyxcbi53b29jb21tZXJjZS1wYWdlICNjb250ZW50IGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzLFxuLndvb2NvbW1lcmNlLXBhZ2UgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJcbnNlY3Rpb24jZmlsdGVyX3NlY3Rpb257XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJjMTtcblxuICAgICNyZWNpcGUtbGlua3Mge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKSByZW0tY2FsYygxNSk7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGNvbG9yOiAkYmMyO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgIG1hcmdpbjogMCByZW0tY2FsYyg1KTtcblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJjMjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG5cbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAwLjNzIGxpbmVhcjtcblxuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLmNvbHVtbiB7XG4gICAgLnJlY2lwZS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywwLjUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgkYmxhY2ssMC43NSkgMCUsIHJnYmEoJGJsYWNrLDApIDEwMCUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaW1nLXdyYXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgICAgICAgLmltZy1vYmoge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1KSByZW0tY2FsYygzMCk7XG5cblxuXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbS1jYWxjKDYpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI4KTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjE1cyBlYXNlLWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJlY2lwZS1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAgMTAwJTtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDMwKTtcblxuICAgICAgICAgICAgICAgICAgICAuc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5yZWNpcGUtaWNvbnMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSG92ZXIgZWZmZWN0c1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0b3A6IDYwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmltZy13cmFwIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGVudCBoMzphZnRlciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyIG92ZXJyaWRlc1xuICAgICY6bnRoLWNoaWxkKDEpIC5yZWNpcGUtY2FyZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikgLnJlY2lwZS1jYXJkIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSAucmVjaXBlLWNhcmQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtbGFzdC1jaGlsZCgxKSAucmVjaXBlLWNhcmQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6bnRoLWxhc3QtY2hpbGQoMikgLnJlY2lwZS1jYXJkIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1sYXN0LWNoaWxkKDMpIC5yZWNpcGUtY2FyZCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgLnJlY2lwZS1jYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICAmOm50aC1jaGlsZCgybikgLnJlY2lwZS1jYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuLTEpIC5yZWNpcGUtY2FyZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgJjpudGgtY2hpbGQoM24pIC5yZWNpcGUtY2FyZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCgzbi0yKSAucmVjaXBlLWNhcmQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNoZXJvLnJlY2lwZSB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwdmg7XG4gICAgfVxuXG4gICAgLmltZy1jb2wge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1uIHtcbiAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvLyBwYWRkaW5nLXRvcDogMTAwJTtcblxuICAgICAgICAuaW1nLXdyYXAge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pbWctb2JqIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDcwKSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDEyMCkgMCByZW0tY2FsYygxNjcpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBhLnJlY2lwZV9iYWNrX2J1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIGVhc2UtaW4gMC4xNXM7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwMjE5MFwiO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLnByZXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoOTApO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRiYzE7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzMpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg2MCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiYzE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzEpO1xuXG4gICAgICAgIC5zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmMxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNoYXJlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDkwLTE2KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmMxO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoNSk7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmMxO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYmMxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuc2VjdGlvbiNyZWxhdGVkLXJlY2lwZXMge1xuICAgIGJhY2tncm91bmQ6ICRiYzE7XG5cbiAgICAucm93OmZpcnN0LWNoaWxkIGgyIHtcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYygzNSkgMDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40MDkwOTA5MDkxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ucmVjaXBlLWFyY2ggeyAgICBcbiAgICBjb2xvcjogJGJjMTtcblxuICAgIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bil7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIH0gICAgICAgIFxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG59XG4ucmVjaXBlLWFyY2ggdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyAgICAgICAgXG4gICAgfVxuXG5cbiAgICAuaWNvbnMgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAuaWNvbnMgbGkge1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5pY29ucyBsaSBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuLmluZ3JlLXRleHQge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDEuMjVyZW0gMCAwO1xuICAgIH1cbn1cbi5pbmdyZWRpZW50LWRpdntcbmJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IFxuYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IFxuYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZTJlNGU3O1xuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bil7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IFxufSBcblxufVxuXG4ucmVjaXBlLXBhZC10b3Age1xuICAgIHBhZGRpbmc6IDRyZW0gMDtcblxuICAgIC50ZXh0LWxlZnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG5cbiAgICBiIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgfVxuXG4gICAgbGkgeyAgIFxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAuOHJlbSAxLjJyZW0gIWltcG9ydGFudDsgXG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7ICAgXG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgIFxuICAgIH0gXG4gICAgbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjojMDAwMDAwOyAgICAgICAgICAgIFxuICAgIH0gICBcbn1cblxuLnJlY2lwZXMgdWwgeyAgICBcbiAgICBtYXJnaW4tbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDtcbiAgICBcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuLnJlY2lwZS1sZWZ0LXRleHQge1xuICAgIHBhZGRpbmctdG9wOiAxOHJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycmVtO1xufVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxODAycHgpIHtcbiAgICAucmVjaXBlLWxlZnQtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHJlbTtcbiAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTcwOHB4KSB7XG4gICAgICAgIC5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTZyZW07XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1NjRweCkge1xuLnJlY2lwZS1sZWZ0LXRleHQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTFyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogNy41cmVtO1xuICAgICAgICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcbiAgICAucmVjaXBlLWxlZnQtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDlyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk4cHgpIHtcbi5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG59XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MHB4KXtcbi5yZWNpcGUtbGVmdC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG59XG59XG5cblxuXG4uc2hhcmV7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46MnJlbSAwIDAgMDtcbiAgICBwYWRkaW5nOjA7XG4gIFxuICAgIGxpe1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG4gICAgICBtYXJnaW46MCAwLjVyZW0gMCAwO1xuICBcbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiRiYzE7XG4gICAgICAgIGZvbnQtc2l6ZToxNzAlO1xuICBcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICBjb2xvcjokdGMxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJlY2lwZS1saSB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNlMWU0ZTc7XG4gICAgd2lkdGg6IDg1JTtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG4gICAgfVxuICB9XG5cblxuXG4gIC5yZWNpcGUge1xuICAgIG1hcmdpbi1ib3R0b206IDByZW07XG4gIH1cblxuLnNpbmdsZS1yZWNpcGUtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24peyAgICAgICAgXG4gICAgbWFyZ2luLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnJlbGF0ZWQtcmVjaXBlcyB1bCB7ICAgXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDsgICAgXG59XG5cbiIsIi53b29jb21tZXJjZS1wYWdlLnNpbmdsZS1wcm9kdWN0IHtcbiAgICBkaXYucHJvZHVjdCB7XG4gICAgICAgIGRpdi53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgLy8gLmZsZXgtdmlld3BvcnQge1xuICAgICAgICAgICAgLy8gICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG5cbiAgICAgICAgZGl2LnN1bW1hcnkge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJGdsb2JhbC13aWR0aCAvIDI7XG4gICAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0X3RpdGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDMzKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiYzE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2luZ2xlLXByaWNlIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybS5jYXJ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoODApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIFxuICAgICAgICAudmFyaWF0aW9ucyB0Ym9keSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgIFxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgXG4gICAgICAgICAgICAgICAgdGQsIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgJi5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi4wNTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9tZXRhIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgLnNrdV93cmFwcGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRml4ZXMgLyBhZGp1c3RtZW50cyBmb3IgbW9kYWwgd2luZG93IEFkZC10by1jYXJ0XG4ueG9vLWNwLWF0Y24ge1xuICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xufVxuXG4ueG9vLWNwLXB0aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59XG5cbi53b29jb21tZXJjZS1QcmljZS1jdXJyZW5jeVN5bWJvbCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG5zcGFuLnhjcC1wbHVzLCBzcGFuLnhjcC1taW51cyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnhvby1jcC1wdG90YWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgZGl2LnF1YW50aXR5IHtcbiAgICBtYXJnaW46IDBweCAyMHB4IDAgMDtcbn1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAuYnV0dG9uIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNvbG9yOiRiYzI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ud29vY29tbWVyY2UgLnF1YW50aXR5IC5xdHkge1xuICAgIHdpZHRoOiAzLjYzMWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnJlbGF0ZWQucHJvZHVjdHMsXG4udXBzZWxscy5wcm9kdWN0cyB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICA+IGgyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJjMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEwMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyAgICAgICAgICAgICAgICAgICAgXG4gICAgfVxuXG4gICAgLnByb2R1Y3RzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLndvb2NvbW1lcmNlIGEuYWRkZWRfdG9fY2FydCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnhvby1jcC1hZGRlZCwgLnhvby1jcC1hZGRpbmcge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJlY2lwZS1zZWN0aW9uIHtcblxuICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlIHsgICAgXG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW0gICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cbi5zaW5nbGUtcHJvZHVjdCB7XG4uZmxleC1jb250cm9sLW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMHJlbTtcbiAgICBsZWZ0OiA0NSU7XG4gICAgbGkge1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDE7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAtMi40O1xuICAgICAgICB9XG4gICAgfVxuXG59XG59XG5cblxuIiwic2VjdGlvbi5jdGEge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDg1KSAwO1xuICAgIGJhY2tncm91bmQ6ICRiYzE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLnByZXRpdGxlLCBoMiwgLmJ1dHRvbiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5wcmV0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCByZW0tY2FsYygyMCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbjogMCAwIHJlbS1jYWxjKDMwKTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjEzMzMzMzMzMzM7XG4gICAgfVxufVxuIiwiLndvb2NvbW1lcmNlIHtcblxuICAgIFxuLmNvbHVtbnMtNCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogMTByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNXJlbTtcbn1cblxuXG5kaXYucHJvZHVjdCB7IFxuICAgIC5wcm9kdWN0X3RpdGxlIHtcbiAgICAgICAgLy9mb250LXNpemU6IDI0cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIFxuICAgIH1cblxuZGl2LmltYWdlcyB7XG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X190cmlnZ2VyIHtcbmRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gfVxuXG5cbn1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAuYnV0dG9uLCAud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0ICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IGEsICNoZWFkZXIgI21haW4tbWVudSB1bCBsaS5wcmltYXJ5IC53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgYSB7XG4gICAgJjpob3ZlciB7ICAgICAgICAgICBcbiAgICAgICAgICAgIFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgfSAgXG59XG5cbi53b29jb21tZXJjZSBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAgIWltcG9ydGFudDtcbn1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyBzZWxlY3Qge1xuICAgIG1heC13aWR0aDogNjUlICFpbXBvcnRhbnQ7XG59XG4ud29vY29tbWVyY2UgZGl2LnByb2R1Y3QgcC5zdG9jayB7ICAgIFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuIiwiYm9keS53b29jb21tZXJjZS1jYXJ0LFxuYm9keS53b29jb21tZXJjZS1jaGVja291dCxcbmJvZHkud29vY29tbWVyY2UtYWNjb3VudCB7XG5cbiAgICAud29vY29tbWVyY2Uge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMCkgMDtcblxuICAgICAgICBoMiwgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzOCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg0MCkgMCByZW0tY2FsYygyMCk7XG4gICAgICAgIH1cblxuICAgICAgICB0YWJsZSB7XG5cbiAgICAgICAgICAgICYuc2hvcF90YWJsZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LXF1YW50aXR5IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OXB4KSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucXR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdHJvbmcucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgICAgICAgICBjb2xvcjogJGJjMTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJGJsYWNrO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmMxLCAxNSUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNoZWFkZXIgI21haW4tbWVudSB1bCBsaS53cG1lbnVjYXJ0bGkgYS53cG1lbnVjYXJ0LWNvbnRlbnRzIHtcbiAgICAvLyBzcGFuIHtcbiAgICAvLyAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgLy8gfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkYmMxO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgLy8gaSB7XG4gICAgICAgIC8vICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgICAgICAvLyB9XG4gICAgfVxufVxuXG4jc2FnZXBheWRpcmVjdC1jYy1mb3JtIC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSxcbiNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLFxuI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnksXG4jYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlcixcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yyxcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcbi53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlcixcbi53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlciB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4jYWRkX3BheW1lbnRfbWV0aG9kIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0LFxuLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQge1xuICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMTYwKTtcbn1cblxuLndvb2NvbW1lcmNlLWVycm9yLFxuLndvb2NvbW1lcmNlLWluZm8sXG4ud29vY29tbWVyY2UtbWVzc2FnZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGJjMTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgfVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDQwKSAwO1xuXG4gICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogcmVtLWNhbGMoNDApIGF1dG87XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI3MCk7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjdmNmY3O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAzMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmMxO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkYmMxO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAycHggNHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC42NztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuY29tbWVudCBpZiBpbmNsdWRpbmcgcGFyYWdyYXBoIGludHJvIHRvIHdvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlXG4gICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAvLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gICAgIHAge1xuICAgIC8vICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAvLyAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgLy8gICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDI4MCk7XG4gICAgLy8gICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg5MCkgcmVtLWNhbGMoNDApIHJlbS1jYWxjKDkwKSAwO1xuICAgIC8vICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAvLyAgICAgfVxuXG4gICAgLy8gICAgIHVsIHtcbiAgICAvLyAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG59XG5cbi53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB+IC53b29jb21tZXJjZS1jaGVja291dCxcbi53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB+IC53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICAgICNjdXN0b21lcl9kZXRhaWxzIHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhpZGUgdGhlIGZvbGxvd2luZyBmaWVsZHNcbiAgICAgICAgI2JpbGxpbmdfY29tcGFueV9maWVsZCxcbiAgICAgICAgI3NoaXBwaW5nX2NvbXBhbnlfZmllbGQsXG4gICAgICAgICNvcmRlcl9jb21tZW50c19maWVsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3Mgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn0iLCIkcGFkZGluZzogNDA7XG5cbmJvZHkud29vY29tbWVyY2UtYWNjb3VudCB7XG4gICAgLndvb2NvbW1lcmNlIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAjcmVzcG9uZCBpbnB1dCNzdWJtaXQsIGEuYnV0dG9uLCBidXR0b24uYnV0dG9uLCBpbnB1dC5idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtIDAuNGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgbmF2Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbS1jYWxjKDE4MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJGJsYWNrLDApIDc1JSxyZ2JhKCRibGFjaywwLjEpIDEwMCUpO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuMDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRwYWRkaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJHBhZGRpbmcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZG93bmxvYWRzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZSBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJjMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEwcHggLTVweCByZ2JhKCRibGFjaywwLjUpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMTBweCAwIDEwcHggMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGJjMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKCRwYWRkaW5nKSAwO1xuXG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoJHBhZGRpbmcgLSAyMCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygkZ2xvYmFsX2d1dHRlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgyLCBoMyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAud29vY29tbWVyY2UtQWRkcmVzcyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRnbG9iYWxfZ3V0dGVyKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweDtcblxuICAgICAgICAgICAgICAgIGgyLCBoMyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZWRpdCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNjdXN0b21lcl9sb2dpbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGdsb2JhbF9ndXR0ZXIpO1xuXG4gICAgZm9ybSAuZm9ybS1yb3cgbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICBoMiwgZm9ybSwgaW5wdXQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgZm9ybSAucGFzc3dvcmQtaW5wdXQgaW5wdXRbdHlwZT1wYXNzd29yZF0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW5fX3N1Ym1pdCxcbiAgICAud29vY29tbWVyY2UtZm9ybS1yZWdpc3Rlcl9fc3VibWl0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDE1KSBhdXRvO1xuICAgIH1cblxuICAgICYucmVnaXN0ZXItb25seSxcbiAgICAmLmxvZ2luLW9ubHkge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yZWdpc3Rlci1vbmx5IC5jb2wtMSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5sb2dpbi1vbmx5IC5jb2wtMiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2VuZXJhbCBDb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIHtcbiAgICAuaW1nLWNvbCwgLnZpZGVvLWNvbCAudGV4dC1jb2wge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBpbWcgeyAgICAgICAgXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgM3MgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyAgICAgICAgXG4gICAgICAgIH0gICBcbiAgICAgICAgXG4gICAgICAgIGE6aG92ZXIgaW1ne1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXZlbnQgdGV4dCBjb2x1bW5zIGZyb20gZ29pbmcgcmVkaWN1bG91c2x5IHdpZGVcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAuY29sdW1uOm5vdCg6b25seS1jaGlsZCkudHh0LWNvbCB7XG4gICAgICAgICAgICAvLyBtYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggLyAyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg5MDApO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cucnRsIHtcbiAgICAgICAgICAgIC50eHQtY29sIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgLy9jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMXJlbTtcbiAgICAgICAgXG4gICAgICAgICYucHJldGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJnLXByaW1hcnksIC5iZy1wcmltYXJ5IHtcbiAgICAgICAgaDMucHJldGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9uIHsgICAgIFxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7ICAgICAgIFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyBcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMXJlbTtcbiAgICAgICAgXG4gICAgICAgICY6Zm9jdXMgeyAgICAgICAgICAgIFxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgeyAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICAgICAgICB9ICAgICAgICBcbiAgICAgICAgXG4gICAgfVxuXG4gICAgLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxNnB4OyAgICAgICBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgXG4gICAgbWFyZ2luOiAxcmVtIDAgMXJlbTtcbiAgICBcbiAgICAmOmZvY3VzIHsgICAgICAgICAgICBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIgeyAgICAgICAgICAgIFxuICAgICAgICBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIH1cbiAgICB9XG4gICAgXG5cbiAgICAucmVzcG9uc2l2ZS1lbWJlZCwgLmZsZXgtdmlkZW8ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYuaGFzLW1lZGlhLWNvbCB7XG4gICAgICAgIC50eHQtY29sIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcqNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogc29saWQgNTBweCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDUwcHggdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDUwcHggJGJjMTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuZXhwYW5kZWQgLmNvbHVtbiB7XG4gICAgICAgICAgICAmLm1lZGl1bS02IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcqNCAkZ2xvYmFsLXBhZGRpbmcqNDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDUwJSAwIDA7IC8qIDE6MSBBc3BlY3QgUmF0aW8gKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudHh0LWNvbCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaW1nLWNvbCB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnZpZGVvLWNvbCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyaWFuZ2xlc1xuICAgICAgICAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTUwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDQwcHggMzBweCA0MHB4IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkd2hpdGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlYWNoICRyb3cgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAgICAgICAgICAgJGxhYmVsOiBudGgoJHJvdywgMSk7XG4gICAgICAgICAgICAgICAgJHZhbHVlOiBudGgoJHJvdywgMik7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICYuYmctI3skbGFiZWx9OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdmFsdWUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJ0bCAuY29sdW1uLm1lZGl1bS02Om50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogNDBweCAwIDQwcHggMzBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVhY2ggJHJvdyBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICAgICAgICAgICAkbGFiZWw6IG50aCgkcm93LCAxKTtcbiAgICAgICAgICAgICAgICAkdmFsdWU6IG50aCgkcm93LCAyKTtcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgJi5iZy0jeyRsYWJlbH06YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm5vdC1leHBhbmRlZCB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwMCkgMDtcblxuICAgICAgICArIC5ub3QtZXhwYW5kZWQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7IFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByZXRpdGxlIHsgICAgXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAvL2NvbG9yOiAjRkE2NDAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIH1cblxuICAgIC5ib3R0b20ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZC10b3AgeyAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmMxO1xuICAgICAgICBoZWlnaHQ6IC40cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDhyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICB9XG5cblxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwIC8gMjg7XG4gICAgfVxuXG4gICAgLy8udHJpbGVmdCB7XG4gICAgICBcblxuICAgICAgIC8vICY6YWZ0ZXIge1xuICAgICAgIC8vICAgICBjb250ZW50OicnO1xuICAgICAgICAgICAgXG4gICAgICAgIC8vICAgIHRvcDogMTAwJTtcbiAgICAgICAgLy8gICAgbGVmdDogMDtcbiAgICAgICAgLy8gICAgcmlnaHQ6IDA7XG4gICAgICAgIC8vICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAvLyAgICB3aWR0aDogMDtcbiAgICAgICAgLy8gICAgaGVpZ2h0OiAwO1xuICAgICAgICAvLyAgIGJvcmRlci10b3A6IHNvbGlkIDUwcHggI2UxNTkxNTtcbiAgICAgICAgLy8gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDUwcHggdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vICAgIGJvcmRlci1yaWdodDogc29saWQgNTBweCB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gICAgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XG4gICAgICAgIC8vfVxuICAgIC8vfVxuXG5cblxuICAgIFxuXG4gICAgLy8gV09SRFBSRVNTIFNUQU5EQVJEXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC5hbGlnbm5vbmUge1xuICAgICAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbiAgICB9XG5cbiAgICAuYWxpZ25jZW50ZXIsXG4gICAgZGl2LmFsaWduY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87XG4gICAgfVxuXG4gICAgLmFsaWducmlnaHQge1xuICAgICAgICBmbG9hdDpyaWdodDtcbiAgICAgICAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7XG4gICAgfVxuXG4gICAgLmFsaWdubGVmdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbiAgICB9XG5cbiAgICBhIGltZy5hbGlnbnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMjBweDtcbiAgICB9XG5cbiAgICBhIGltZy5hbGlnbm5vbmUge1xuICAgICAgICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbiAgICB9XG5cbiAgICBhIGltZy5hbGlnbmxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7XG4gICAgfVxuXG4gICAgYSBpbWcuYWxpZ25jZW50ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgICAgIG1heC13aWR0aDogOTYlOyAvKiBJbWFnZSBkb2VzIG5vdCBvdmVyZmxvdyB0aGUgY29udGVudCBhcmVhICovXG4gICAgICAgIHBhZGRpbmc6IDVweCAzcHggMTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC53cC1jYXB0aW9uLmFsaWdubm9uZSB7XG4gICAgICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xuICAgIH1cblxuICAgIC53cC1jYXB0aW9uLmFsaWdubGVmdCB7XG4gICAgICAgIG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xuICAgIH1cblxuICAgIC53cC1jYXB0aW9uLmFsaWducmlnaHQge1xuICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMjBweDtcbiAgICB9XG5cbiAgICAud3AtY2FwdGlvbiBpbWcge1xuICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC13aWR0aDogOTguNSU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC53cC1jYXB0aW9uIHAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDRweCA1cHg7XG4gICAgfVxuXG4gICAgLyogVGV4dCBtZWFudCBvbmx5IGZvciBzY3JlZW4gcmVhZGVycy4gKi9cbiAgICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7IC8qIE1hbnkgc2NyZWVuIHJlYWRlciBhbmQgYnJvd3NlciBjb21iaW5hdGlvbnMgYW5ub3VuY2UgYnJva2VuIHdvcmRzIGFzIHRoZXkgd291bGQgYXBwZWFyIHZpc3VhbGx5LiAqL1xuICAgIH1cblxuICAgIC5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgei1pbmRleDogMTAwMDAwO1xuICAgICAgICAvKiBBYm92ZSBXUCB0b29sYmFyLiAqL1xuICAgIH1cbn1cblxuLmZsb2F0eS1lbmFibGVkIC5wYWdlYnVpbGRlciBzZWN0aW9uLmdlbmVyYWwtY29udGVudC1hcmVhIHtcbiAgICAuZmxvYXR5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoLTI1KTtcbiAgICB9XG59XG5cbi5wdWxsLW91dC1jb250ZW50e1xuICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjokc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQWNjb3JkaW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5hY2NvcmRpb25zIHtcbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG59XG5cbi5hY2NvcmRpb24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAmLWl0ZW0ge1xuICAgICAgICArIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAwIDEwcHg7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMTUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDQwcHggMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRiYzE7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xOSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCbG9ja2xpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLmJsb2NrbGlua3Mge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgXG4gICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5jb2x1bW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJhY2tncm91bmQtaW1hZ2Uge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICMwMDAgNDAlLCByZ2JhKCMwMDAsIDApIDEwMCUpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg2MCkgMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjAwKSByZW0tY2FsYyg4MCkgcmVtLWNhbGMoMTUwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYS5jb2x1bW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLmJhY2tncm91bmQtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYnV0dG9uLXNvbGlkIHtcbiAgICAgICAgICAgICAgICAmLXJlZDpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtd2hpdGU6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRiYzE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbnRhY3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24uY29udGFjdCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIFxuICAgIC5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSB7XG4gICAgICBtYXJnaW4tdG9wOiAzLjc1cmVtO1xuICAgICAgYmFja2dyb3VuZDogJGJjMTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cbiAgXG5cbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xuICAgICAgIG1hcmdpbi1yaWdodDogMHJlbTsgICAgICBcblxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHJlbTsgICAgXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDdyZW07ICAgXG4gXG4gICAgICAgfVxuICAgIH1cblxuICAgIGltZyAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcmVtOyBcbiBcbiAgICAgICB9XG4gICAgICBcbiAgICB9XG5cbiAgIC5jb250YWN0LWRpdiB7XG4gICAgbWFyZ2luLXRvcDogMTByZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA0cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMCAhaW1wb3J0YW50O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMXB4ICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tdG9wOiAwcmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OyAgXG4gICAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMjhweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgIFxuICB9XG4gIFxuICAgIC5jb250ZW50IHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB6LWluZGV4OiAwO1xuICBcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgXG4gICAgICAgICYuYWRkcmVzcyxcbiAgICAgICAgJi5waG9uZSxcbiAgICAgICAgJi5lbWFpbCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1wYWRkaW5nICogMC41O1xuICAgICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDAuNSAwO1xuICBcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBcbiAgXG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzLjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICBwIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICB9XG4gIFxuICAgICAgZm9ybSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtcGFkZGluZztcbiAgXG4gICAgICAgIFt0eXBlPVwidGV4dFwiXSxcbiAgICAgICAgW3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgICAgICAgW3R5cGU9XCJkYXRlXCJdLFxuICAgICAgICBbdHlwZT1cImRhdGV0aW1lXCJdLFxuICAgICAgICBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAgICAgICBbdHlwZT1cIm1vbnRoXCJdLFxuICAgICAgICBbdHlwZT1cIndlZWtcIl0sXG4gICAgICAgIFt0eXBlPVwiZW1haWxcIl0sXG4gICAgICAgIFt0eXBlPVwibnVtYmVyXCJdLFxuICAgICAgICBbdHlwZT1cInNlYXJjaFwiXSxcbiAgICAgICAgW3R5cGU9XCJ0ZWxcIl0sXG4gICAgICAgIFt0eXBlPVwidGltZVwiXSxcbiAgICAgICAgW3R5cGU9XCJ1cmxcIl0sXG4gICAgICAgIFt0eXBlPVwiY29sb3JcIl0sXG4gICAgICAgIHRleHRhcmVhLFxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNnB4IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLDAuMDUpO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBXZWJLaXQgYnJvd3NlcnMgKi9cbiAgICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICBbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgIHdpZHRoOiA0OS41JTtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiAzMHB4IDIwcHggIWltcG9ydGFudCBcbiAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgICAgICB3aWR0aDogNDkuNSU7IFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMi42cmVtO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjBweCAhaW1wb3J0YW50IFxuICAgICAgICB9XG5cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gIFxuICAgICAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5nZm9ybV9maWVsZHMgLmdmaWVsZCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgLyogRmlyZWZveCAxOSsgKi9cbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5nZm9ybV9maWVsZHMgLmdmaWVsZCBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIC8qIElFIDEwKyAqL1xuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgIC8qIEZpcmVmb3ggMTgtICovXG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICBcbiAgICAgICAgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAvKiBDaHJvbWUvT3BlcmEvU2FmYXJpICovXG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAvKiBJRSAxMCsgKi9cbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5nZm9ybV9maWVsZHMgLmdmaWVsZCB0ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC52YWxpZGF0aW9uX2Vycm9yIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjNzkwMDAwO1xuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC5nZm9ybV9maWVsZHMge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTcxNmM7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5nZl9mdWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuZ2ZpZWxkLmdmaWVsZF9lcnJvciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICBcbiAgICAgICAgaW5wdXQuZ2Zvcm1fYnV0dG9uIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmMxO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgIEBleHRlbmQgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBtaW4td2lkdGg6IHJlbS1jYWxjKDIwMCk7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHggIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICBcbiAgICAgICAgICAud3BjZjctbm90LXZhbGlkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmMxO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAuc2NyZWVuLXJlYWRlci1yZXNwb25zZSxcbiAgICAgIC53cGNmNy12YWxpZGF0aW9uLWVycm9ycyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIFxuICAgICAgICB1bCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi5oYXMtbWFwIHtcbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IC0xMCU7XG4gICAgICAgICAgcmlnaHQ6IC0xMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgICAgbGVmdDogLTI1JTtcbiAgICAgICAgICAgIHJpZ2h0OiAtNTAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICBcbiAgICAgICAgJi5yZWQge1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiYzE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICAmLmJsdWUge1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiYzI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmMzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIC5hY2YtbWFwLFxuICAgICAgLm1hcC1pbWFnZSB7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzAwKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNjUpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKC02NSk7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgICsgc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg2NSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAucGFnZWJ1aWxkZXIgc2VjdGlvbiB7XG4gICAgJi53aGl0ZSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIFxuICAgICYubGlnaHQtZ3JheSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIH1cbiAgXG4gICAgJi5tZWRpdW0tZ3JheSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICB9XG4gIFxuICAgICYuZGFyay1ncmF5ICsgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcbiAgICB9XG4gIFxuICAgICYucmVkICsgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJjMTtcbiAgICB9XG4gIFxuICAgICYuYmx1ZSArIHNlY3Rpb24uY29udGFjdC5oYXMtbWFwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYzI7XG4gICAgfVxuICBcbiAgICAmLmdyZWVuICsgc2VjdGlvbi5jb250YWN0Lmhhcy1tYXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJjMztcbiAgICB9XG4gIH1cbiAgXG4gIC5wYWdlYnVpbGRlciBzZWN0aW9uLmNvbnRhY3QgLmNvbnRlbnQgZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE2NTAwO1xuICAgIG1pbi13aWR0aDogMTIuNXJlbTtcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGRUFUVVJFRCBCTE9DSyAtIElNQUdFIG9yIFZJREVPIHcvIENPTlRFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDbGFzc1xuLy8gLS0tLS0tXG4udGV4dC1pbWFnZS1ibG9jayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG5cdC8vIENvbnRlbnQgd3JhcHBlclxuXHQud3JhcHBlciB7XG5cblxuXG5cdFx0Ly8gSW1hZ2Vcblx0XHQuaW1hZ2Uge1xuXHRcdFx0Ly8gQGluY2x1ZGUgZmxleEltZztcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogYXV0bztcblxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHQvL3dpZHRoOiAxMDAlO1xuXHRcdFx0XHQvL2hlaWdodDogMTAwJTtcblx0XHRcdFx0Ly9vYmplY3QtZml0OiBjb3Zlcjtcblx0XHRcdH1cblx0XHR9XG5cblxuXG5cdFx0Ly8gQ29udGVudFxuXHRcdC5jb250ZW50IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdH1cblxuXHRcdFx0aDMge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRcdFx0XHRjb2xvcjogJGJjMTtcblx0XHRcdH1cblx0XHRcdGg0IHtcblx0XHRcdFx0bWFyZ2luLXRvcDogLTFyZW07XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0XHR9XG5cblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAycmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuXG4vLyBJRTkgRml4ZXNcblxuLmllLTkge1xuXHQudmlkZW8tcGxheSB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdG9ja2lzdHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnBhZ2VidWlsZGVyIHNlY3Rpb24uc2VwYXJhdG9yLFxuc2VjdGlvbi5zZXBhcmF0b3Ige1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgwKSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNjcpO1xuICAgICAgICBmaWxsOiAkYmMxO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1PRFVMRSDigJMgRlVMTCBTQ1JFRU4gSU1BR0UgU0xJREVSXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFNsaWRlciBjb250YWluZXJcbi5pbWFnZS1zbGlkZXJ7XG5cdCYtY29udGFpbmVye1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXHQmLS1zbGlkZSB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRjdXJzb3I6IGdyYWI7XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRjdXJzb3I6IGdyYWJiaW5nO1xuXHRcdH1cblxuXHRcdC5jYXB0aW9ue1xuXHRcdFx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cdFx0XHRmb250LXNpemU6IDAuOXJlbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblx0XG59XG4uZnVsbC13aWR0aHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHQuaW1hZ2Utc2xpZGVyLS1zbGlkZXtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LmNhcHRpb257XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIDA7XG5cdFx0XHRAaW5jbHVkZSBncmFkLWhlcm87XG5cdFx0XHRwe1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRmb250LXNpemU6IDJyZW07XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLyBDb250cm9sc1xuLmltYWdlLXNsaWRlci0tY29udHJvbHMge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMCAzcmVtO1xuXG5cdEBpbmNsdWRlIHZhbGlnbjtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdHBhZGRpbmc6IDAgNnJlbTtcblx0fVxuXG5cdGksIHN2ZyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxLjhyZW07XG5cdFx0aGVpZ2h0OiAxLjhyZW07XG5cblx0XHRmaWxsOiAkd2hpdGU7XG5cblx0XHRAaW5jbHVkZSBhbmltYXRlKC4zcywgZWFzZS1pbi1vdXQpO1xuXHR9XG5cblx0Ji1wcmV2IHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRzdmcge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogLTFyZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji1uZXh0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHN2ZyB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogLTFyZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0YnV0dG9uIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTA7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn0iLCIubG9nby1jYXJvdXNlbHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46MCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOjA7XG5cbiAgbGl7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDcwJTtcblxuICAgIGhlaWdodDoxMDBweDtcbiAgfVxuXG4gIC5zbGljay1kb3Rze1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbjoycmVtIDAgMCAwO1xuXG4gICAgbGl7XG4gICAgICBoZWlnaHQ6MTBweDtcbiAgICAgIHdpZHRoOjEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOjUwJTtcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgY3Vyc29yOnBvaW50ZXI7XG5cbiAgICAgICYuc2xpY2stYWN0aXZle1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5wYWdlLWZlYXR1cmUtc2VjdGlvbntcbiAgYmFja2dyb3VuZC1jb2xvcjokbGlnaHQtZ3JheTtcblxuICAuZmVhdHVyZS1jYXJke1xuICAgIGJhY2tncm91bmQtY29sb3I6JGJjMTtcbiAgICBjb2xvcjokd2hpdGU7XG4gICAgYm9yZGVyOjA7XG4gICAgYm9yZGVyLXJhZGl1czoyMHB4O1xuICAgIGZsZXgtZ3JvdzoxO1xuXG4gICAgLmZlYXR1cmUtaW1ne1xuICAgICAgbWluLWhlaWdodDoxNHJlbTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czoyMHB4IDIwcHggMHB4IDBweDtcblxuICAgICAgYXtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2FyZC1kZXRhaWxze1xuICAgICAgcGFkZGluZzoycmVtO1xuICAgICAgY29sb3I6JHRjMTtcblxuICAgICAgc3BhbntcbiAgICAgICAgY29sb3I6JHRjMTtcblxuICAgICAgICBhe1xuICAgICAgICAgIGNvbG9yOiRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaDN7XG4gICAgICAgIG1hcmdpbjowIDAgMXJlbSAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTpub25lO1xuICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICB9XG4gICAgICAuY3Rhe1xuICAgICAgICBtYXJnaW46MXJlbSAwIDAgMDtcbiAgICAgICAgLy8gQGV4dGVuZCAldW5kZXJsaW5lLWN0YTtcbiAgICAgICAgLy8gQGV4dGVuZCAldW5kZXJsaW5lLWN0YS1kYXJrLWJsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5jb2x1bW5ze1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBmbGV4LWdyb3c6MTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgdXApIHtcbiAgICAgIG1hcmdpbjowIDAgMXJlbSAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgbWFyZ2luOjA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICB9XG4gIH1cbn1cbi5wYWdlLWZlYXR1cmVze1xuICBkaXNwbGF5OmZsZXg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgIGFsaWduLWNvbnRlbnQ6c3RyZXRjaDtcbiAgICBmbGV4LXdyYXA6d3JhcDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIGZsZXgtZ3JvdzoxO1xuICAgIGZsZXgtd3JhcDpub3dyYXA7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICB9XG5cbiAgLm5ld3MtY2FyZC10d2l0dGVye1xuICAgIGJhY2tncm91bmQtY29sb3I6JHR3aXR0ZXI7XG4gICAgY29sb3I6JHdoaXRlO1xuICAgIGZsZXgtZ3JvdzoxO1xuICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQQVJBTExBWFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucGFnZWJ1aWxkZXIgc2VjdGlvbi5wYXJhbGxheCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogNzAlO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtcblxuXHQmLndpdGhvdXQtY29udGVudCB7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYyg3NTApO1xuXHRcdG1heC1oZWlnaHQ6IDYwdmg7XG5cblx0XHQuaW1hZ2U6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdH1cblxuXHQuaW1hZ2Uge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMDtcblx0XHRiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYmxhY2s7XG5cdFx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRlbnQge1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwMCkgMDtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDgwKTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDgwKTtcblx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblxuXHRcdD4gKiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdGZvbnQtc2l6ZTogMzBweDtcdFx0XHRcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMzRweDtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuXHRcdFx0Y29sb3I6ICRiYzI7XHRcdFxuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICRiYzE7XG5cdFx0fVxuXHR9XG5cblx0Ji52aWRlbyB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0LmNvbHVtbiB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNvbnRlbnQge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxMCk7XG5cdFx0XHR9XG5cblx0XHRcdC5wbGF5LWJ1dHRvbiB7XG5cdFx0XHRcdHdpZHRoOiByZW0tY2FsYyg2MCk7XG5cdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoNjApO1xuXHRcdFx0XHRtYXJnaW46IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ltYWdlcy9wbGF5LnN2ZycpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3A7XG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblx0XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdFx0bGVmdDogMzMuMzMzJTtcblx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMTIwKTtcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDEyMCk7XG5cdFx0XHRcdFx0bWFyZ2luOiByZW0tY2FsYygtNjApIDAgMCByZW0tY2FsYygtNjApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji53aXRoLWNvbnRlbnQge1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdC5pbWFnZTphZnRlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuNjtcblx0XHRcdH1cblxuXHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoODApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnBsYXktYnV0dG9uIHtcblx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoNzApO1xuXHRcdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoNzApO1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxMzApO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygxMzApO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiByZW0tY2FsYygtNjUpIDAgMCByZW0tY2FsYygtNjUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ubW9kYWwge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdG9wYWNpdHk6IDA7XG5cdHotaW5kZXg6IC05OTk5OTk7XG5cdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuXG5cdC5vdmVybGF5IHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjgpO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJ1gnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0cmlnaHQ6ICRnbG9iYWwtcGFkZGluZztcblx0XHRcdHRvcDogJGdsb2JhbC1wYWRkaW5nO1xuXHRcdFx0cGFkZGluZzogMC41ZW0gMC42ZW0gMC40ZW07XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYmMxO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHR9XG5cdH1cblxuXHRpZnJhbWUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAxMCU7XG5cdFx0dG9wOiAxMCU7XG5cdFx0d2lkdGg6IDgwJTtcblx0XHRoZWlnaHQ6IDgwJTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cdH1cblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR6LWluZGV4OiA5OTk5OTk7XG5cblx0XHRpZnJhbWUge1xuXHRcdFx0dHJhbnNmb3JtOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5odG1sLmlvcyB7XG5cdC5wYWdlYnVpbGRlciBzZWN0aW9uLnBhcmFsbGF4IC5pbWFnZSB7XG5cdFx0YmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsO1xuXHR9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRdWlja2xpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucXVpY2tsaW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjokdGMxO1xuXG4gICAgLmljb24taW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgIG1hcmdpbjowIGF1dG87XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW0gYXV0bztcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSguM3MsIGVhc2UtaW4tb3V0KTtcbiAgICAgICAgLy8gbWF4LXdpZHRoOjUwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46MCAwICgkZ2xvYmFsLXBhZGRpbmcqMikgMDtcblxuICAgICAgaDR7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOm5vbmU7XG4gICAgICAgIG1hcmdpbjowIDAgMS41cmVtIDA7XG4gICAgICB9XG4gICAgICBwe1xuICAgICAgICBtYXJnaW46MCAwICRnbG9iYWwtcGFkZGluZyAwO1xuICAgICAgfVxuICAgICAgYXtcbiAgICAgICAgY29sb3I6JHRjMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IC44O1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmNhbGwtdG8tYWN0aW9uLWFyZWF7XG4gIC8vIG1hcmdpbjoycmVtIDAgMCAwO1xufVxuIiwiLnNlcnZpY2Vze1xuICBkaXNwbGF5OmZsZXg7XG4gIGZsZXgtd3JhcDp3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjpyb3c7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuXG4gIC5zZXJ2aWNlcy1ibG9ja3tcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOmNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywuMSk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIHVwKSB7XG4gICAgICBoZWlnaHQ6MzAwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICBoZWlnaHQ6NTAwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgIH1cblxuICAgIC5zZXJ2aWNlcy1jb250ZW50e1xuICAgICAgb3BhY2l0eToxO1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICBsZWZ0OjA7XG4gICAgICB0b3A6MDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkYmMxLCAwLjIpO1xuICAgICAgY29sb3I6JHdoaXRlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIHVwKSB7XG4gICAgICAgIHBhZGRpbmc6MS4zcmVtO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgICAgcGFkZGluZzogMS42cmVtO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgfVxuXG5cbiAgICAgIGl7XG4gICAgICAgIGNvbG9yOiRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBoMntcbiAgICAgICAgY29sb3I6JHdoaXRlO1xuICAgICAgICAvLyBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgdXApIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNvdmVyLWxpbmt7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVye1xuICAgICAgLnNlcnZpY2VzLWNvbnRlbnR7XG4gICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRiYzEsIDAuOCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1sYXN0e1xuICAgICAgLnNlcnZpY2VzLWNvbnRlbnR7XG4gICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgICAgIGF7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjNyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5wYWdpbmF0aW9ue1xuICBiYWNrZ3JvdW5kLWNvbG9yOiRsaWdodC1ncmF5O1xuICBvdmVyZmxvdzpoaWRkZW47XG4gIHBhZGRpbmc6MnJlbSAwO1xuICBtYXJnaW46MDtcblxuICB1bHtcbiAgICBtYXJnaW46MDtcbiAgICBwYWRkaW5nOjA7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG5cbiAgICBsaXtcbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiR0YzE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uZmlsdGVyc3tcbiAgYmFja2dyb3VuZC1jb2xvcjokbGlnaHQtZ3JheTtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xuICBwYWRkaW5nOjJyZW0gMDtcbiAgbWFyZ2luOjA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICB1bHtcbiAgICBtYXJnaW46MDtcbiAgICBwYWRkaW5nOjA7XG5cbiAgICBsaXtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgIGF7XG4gICAgICAgIGNvbG9yOiR0YzE7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOjAgMCAwIDEuNXJlbTtcblxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBjb250ZW50OlwiXCI7XG4gICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICBoZWlnaHQ6MTBweDtcbiAgICAgICAgICB3aWR0aDoxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyOjJweCBzb2xpZCAkYmMxO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6NTAlO1xuICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgIHRvcDoxNSU7XG4gICAgICAgICAgbGVmdDowLjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuYWN0aXZle1xuICAgICAgICBhe1xuICAgICAgICAgIGNvbG9yOiRiYzE7XG5cbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3RvY2tpc3RzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wYWdlYnVpbGRlciBzZWN0aW9uLnN0b2NraXN0cyB7XG5cbiAgICAuZ20tc3R5bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMjApICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaWZyYW1lICsgZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgI3BhYy1pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoLTEyMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKSByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIHJlbS1jYWxjKDMwKSAkYmMxO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmMxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI21hcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzNTVweCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24gc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzMCk7XG4gICAgICAgIGZpbGw6ICRiYzE7XG4gICAgfVxuXG4gICAgLmdtLXN0eWxlLWl3LWQge1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIlxuLnRhYmJlZC1jb250ZW50e1xuXHQudGl0bGUtYXJlYXtcblx0XHRwe1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcblx0XHR9XG5cdH1cbn1cblxuXG4udGFicy1jb250ZW50e1xuICBtYXJnaW46MCAwIDNyZW0gMDtcbiAgcGFkZGluZzoycmVtO1xufVxuLnRhYnN7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiM3NTc1NzU7XG4gIGNvbG9yOiR3aGl0ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIHVwKSB7XG4gICAgYWxpZ24tY29udGVudDpjZW50ZXI7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICBhbGlnbi1jb250ZW50OnN0cmV0Y2g7XG4gICAgZGlzcGxheTpmbGV4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICB9XG5cblxuXG5cbiAgbGl7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIHdpZHRoOmF1dG87XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIGF7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJGJjMSwgMSk7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAgICAgJjphZnRlcntcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgXHRsZWZ0OiA1MCU7XG4gICAgICBcdGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBcdGNvbnRlbnQ6IFwiXCI7XG4gICAgICBcdGhlaWdodDogMDtcbiAgICAgIFx0d2lkdGg6IDA7XG4gICAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBcdGJvcmRlci1jb2xvcjogcmdiYSgkYmMxLCAwKTtcbiAgICAgIFx0Ym9yZGVyLXRvcC1jb2xvcjogJGJjMTtcbiAgICAgIFx0Ym9yZGVyLXdpZHRoOiAxMHB4O1xuICAgICAgXHRtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDR7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIHBhZGRpbmc6MDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOm5vbmU7XG4gICAgICBjb2xvcjokd2hpdGU7XG4gICAgfVxuICAgIGF7XG4gICAgICBjb2xvcjokd2hpdGU7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAgICAgJjpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRiYzEsIDEpO1xuXG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJGJjMSwgMCk7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJjMTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJ0YWJsZXtcbiAgdGhlYWR7XG4gICAgY29sb3I6JHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6JGJjMTtcblxuICAgIHRoe1xuICAgICAgcGFkZGluZzoxcmVtIDEuNXJlbTtcbiAgICB9XG4gIH1cbiAgdHJ7XG4gICAgdGR7XG4gICAgICBwYWRkaW5nOjFyZW0gMS41cmVtO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYmMxO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRFU1RJTU9OSUFMU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4udGVzdGltb25pYWxzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblxuXHQuc2xpY2stZG90c3tcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRtYXJnaW46MnJlbSAwIDAgMDtcblxuXHRcdGxpe1xuXHRcdFx0aGVpZ2h0OjEwcHg7XG5cdFx0XHR3aWR0aDoxMHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czo1MCU7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdGJhY2tncm91bmQtY29sb3I6JGxpZ2h0LWdyYXk7XG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcblxuXHRcdFx0Ji5zbGljay1hY3RpdmV7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6JGJjMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXG5cdGgzIHtcblx0XHRjb2xvcjogJGJjMTtcblx0XHRtYXJnaW46IDAgMCAycmVtIDA7XG5cdH1cblxuXG5cdHVsIHtcblx0XHRtYXJnaW46IDJyZW0gMCAwIDA7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdGxpIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXG5cdFx0XHRjdXJzb3I6IGdyYWI7XG5cblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Y3Vyc29yOiBncmFiYmluZztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXG5cdGJsb2NrcXVvdGUge1xuXHRcdGJvcmRlcjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0cCB7XG5cdFx0XHRmb250LXNpemU6IDEuOHJlbTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHRhdXRob3Ige1xuXHRcdGZvbnQtc2l6ZTogMS42cmVtO1xuXHRcdGNvbG9yOiAkYmMxO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdHN0cm9uZyB7XG5cdFx0fVxuXHR9XG5cblxuXG5cdC8vIENvbnRyb2xzXG5cdC5jb250cm9scyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogMnJlbTtcblxuXHRcdGksIHN2ZyB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDogMnJlbTtcblx0XHRcdGhlaWdodDogMnJlbTtcblxuXHRcdFx0ZmlsbDogJGRhcmstZ3JheTtcblxuXHRcdFx0QGluY2x1ZGUgYW5pbWF0ZSguM3MsIGVhc2UtaW4tb3V0KTtcblx0XHR9XG5cblx0XHRidXR0b24ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDFyZW07XG5cblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gJjpob3ZlciB7XG5cdFx0XHRcdHN2ZyB7XG5cdFx0XHRcdFx0ZmlsbDogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdH1cblx0XHRcdC8vIH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRFWFQgQkxPQ0sgU0VDVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU2hhcmVkIExheW91dFxuLy8gLS0tLS0tXG4udGV4dC1ibG9jayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG5cdC8vIDIgQ29sdW1ucyBMYXlvdXRcblx0Ly8gLS0tLS0tXG5cdCYtdHdvIHtcblx0XHRAZXh0ZW5kIC50ZXh0LWJsb2NrO1xuXHR9XG5cblx0Ly8gMyBDb2x1bW5zIExheW91dFxuXHQvLyAtLS0tLS1cblx0Ji10aHJlZSB7XG5cdFx0QGV4dGVuZCAudGV4dC1ibG9jaztcblx0fVxuXG5cdC8vIDQgQ29sdW1ucyBMYXlvdXRcblx0Ly8gLS0tLS0tXG5cdCYtZm91ciB7XG5cdFx0QGV4dGVuZCAudGV4dC1ibG9jaztcblx0fVxufVxuXG4iXX0= */
