:root {
  --body-bg-color: #eee;
  --content-bg-color: #fff;
  --card-bg-color: #f5f5f5;
  --text-color: #555;
  --selection-bg: #262a30;
  --selection-color: #eee;
  --blockquote-color: #666;
  --link-color: #555;
  --link-hover-color: #222;
  --brand-color: #fff;
  --brand-hover-color: #fff;
  --table-row-odd-bg-color: #f9f9f9;
  --table-row-hover-bg-color: #f5f5f5;
  --menu-item-bg-color: #f5f5f5;
  --theme-color: #e28241;
  --btn-default-bg: #fff;
  --btn-default-color: #555;
  --btn-default-border-color: #555;
  --btn-default-hover-bg: #222;
  --btn-default-hover-color: #fff;
  --btn-default-hover-border-color: #222;
  --highlight-background: #f3f3f3;
  --highlight-foreground: #444;
  --highlight-gutter-background: #e1e1e1;
  --highlight-gutter-foreground: #555;
  color-scheme: light;
}
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
body {
  margin: 0;
}
main {
  display: block;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
a {
  background: transparent;
}
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
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,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
button,
input {
/* 1 */
  overflow: visible;
}
button,
select {
/* 1 */
  text-transform: none;
}
button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
button::-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,
[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 {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
progress {
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  outline-offset: -2px; /* 2 */
  -webkit-appearance: textfield; /* 1 */
}
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  font: inherit; /* 2 */
  -webkit-appearance: button; /* 1 */
}
details {
  display: block;
}
summary {
  display: list-item;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
::selection {
  background: var(--selection-bg);
  color: var(--selection-color);
}
html,
body {
  height: 100%;
}
body {
  background: var(--body-bg-color);
  box-sizing: border-box;
  color: var(--text-color);
  font-family: Noto Sans JP, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 1em;
  line-height: 2;
  min-height: 100%;
  position: relative;
  transition: padding 0.2s ease-in-out;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Noto Sans JP, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-weight: bold;
  line-height: 1.5;
  margin: 30px 0 15px;
}
h1 {
  font-size: 1.5em;
}
h2 {
  font-size: 1.375em;
}
h3 {
  font-size: 1.25em;
}
h4 {
  font-size: 1.125em;
}
h5 {
  font-size: 1em;
}
h6 {
  font-size: 0.875em;
}
p {
  margin: 0 0 20px;
}
a {
  border-bottom: 1px solid #999;
  color: var(--link-color);
  cursor: pointer;
  outline: 0;
  text-decoration: none;
  overflow-wrap: break-word;
}
a:hover {
  border-bottom-color: var(--link-hover-color);
  color: var(--link-hover-color);
}
iframe,
img,
video,
embed {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
}
hr {
  background-image: repeating-linear-gradient(-45deg, #ddd, #ddd 4px, transparent 4px, transparent 8px);
  border: 0;
  height: 3px;
  margin: 40px 0;
}
blockquote {
  border-left: 4px solid #ddd;
  color: var(--blockquote-color);
  margin: 0;
  padding: 0 15px;
}
blockquote cite::before {
  content: '-';
  padding: 0 5px;
}
dt {
  font-weight: bold;
}
dd {
  margin: 0;
  padding: 0;
}
.table-container {
  overflow: auto;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.875em;
  margin: 0 0 20px;
  width: 100%;
}
tbody tr:nth-of-type(odd) {
  background: var(--table-row-odd-bg-color);
}
tbody tr:hover {
  background: var(--table-row-hover-bg-color);
}
caption,
th,
td {
  padding: 8px;
}
th,
td {
  border: 1px solid #ddd;
  border-bottom: 3px solid #ddd;
}
th {
  font-weight: 700;
  padding-bottom: 10px;
}
td {
  border-bottom-width: 1px;
}
.btn {
  background: var(--btn-default-bg);
  border: 2px solid var(--btn-default-border-color);
  border-radius: 2px;
  color: var(--btn-default-color);
  display: inline-block;
  font-size: 0.875em;
  line-height: 2;
  padding: 0 20px;
  transition: background-color 0.2s ease-in-out;
}
.btn:hover {
  background: var(--btn-default-hover-bg);
  border-color: var(--btn-default-hover-border-color);
  color: var(--btn-default-hover-color);
}
.btn + .btn {
  margin: 0 0 8px 8px;
}
.btn .fa-fw {
  text-align: left;
  width: 1.285714285714286em;
}
.toggle {
  line-height: 0;
}
.toggle .toggle-line {
  background: #fff;
  display: block;
  height: 2px;
  left: 0;
  position: relative;
  top: 0;
  transition: 0.4s;
  transition-property: left, opacity, top, transform, width;
  width: 100%;
}
.toggle .toggle-line:first-child {
  margin-top: 1px;
}
.toggle .toggle-line:not(:first-child) {
  margin-top: 4px;
}
.toggle.toggle-arrow :first-child {
  left: 50%;
  top: 2px;
  transform: rotate(45deg);
  width: 50%;
}
.toggle.toggle-arrow :last-child {
  left: 50%;
  top: -2px;
  transform: rotate(-45deg);
  width: 50%;
}
.toggle.toggle-close :nth-child(2) {
  opacity: 0;
}
.toggle.toggle-close :first-child {
  top: 6px;
  transform: rotate(45deg);
}
.toggle.toggle-close :last-child {
  top: -6px;
  transform: rotate(-45deg);
}
pre code.hljs {
  display: block;
  overflow-x: auto;
  padding: 1em
}
code.hljs {
  padding: 3px 5px
}
/*!
  Theme: Default
  Description: Original highlight.js style
  Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
  Maintainer: @highlightjs/core-team
  Website: https://highlightjs.org/
  License: see project LICENSE
  Touched: 2021
*/
/*
This is left on purpose making default.css the single file that can be lifted
as-is from the repository directly without the need for a build step

Typically this "required" baseline CSS is added by `makestuff.js` during build.
*/
pre code.hljs {
  display: block;
  overflow-x: auto;
  padding: 1em
}
code.hljs {
  padding: 3px 5px
}
/* end baseline CSS */
.hljs {
  background: #F3F3F3;
  color: #444
}
/* Base color: saturation 0; */
.hljs-subst {
  /* default */
  
}
/* purposely ignored */
.hljs-formula,
.hljs-attr,
.hljs-property,
.hljs-params {
  
}
.hljs-comment {
  color: #697070
}
.hljs-tag,
.hljs-punctuation {
  color: #444a
}
.hljs-tag .hljs-name,
.hljs-tag .hljs-attr {
  color: #444
}
.hljs-keyword,
.hljs-attribute,
.hljs-selector-tag,
.hljs-meta .hljs-keyword,
.hljs-doctag,
.hljs-name {
  font-weight: bold
}
/* User color: hue: 0 */
.hljs-type,
.hljs-string,
.hljs-number,
.hljs-selector-id,
.hljs-selector-class,
.hljs-quote,
.hljs-template-tag,
.hljs-deletion {
  color: #880000
}
.hljs-title,
.hljs-section {
  color: #880000;
  font-weight: bold
}
.hljs-regexp,
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-operator,
.hljs-selector-pseudo {
  color: #ab5656
}
/* Language color: hue: 90; */
.hljs-literal {
  color: #695
}
.hljs-built_in,
.hljs-bullet,
.hljs-code,
.hljs-addition {
  color: #397300
}
/* Meta color: hue: 200 */
.hljs-meta {
  color: #1f7199
}
.hljs-meta .hljs-string {
  color: #38a
}
/* Misc effects */
.hljs-emphasis {
  font-style: italic
}
.hljs-strong {
  font-weight: bold
}
code,
kbd,
figure.highlight,
pre {
  background: var(--highlight-background);
  color: var(--highlight-foreground);
}
figure.highlight,
pre {
  line-height: 1.6;
  margin: 0 auto 20px;
}
figure.highlight figcaption,
pre .caption,
pre figcaption {
  background: var(--highlight-gutter-background);
  color: var(--highlight-foreground);
  display: flow-root;
  font-size: 0.875em;
  line-height: 1.2;
  padding: 0.5em;
}
figure.highlight figcaption a,
pre .caption a,
pre figcaption a {
  color: var(--highlight-foreground);
  float: right;
}
figure.highlight figcaption a:hover,
pre .caption a:hover,
pre figcaption a:hover {
  border-bottom-color: var(--highlight-foreground);
}
pre,
code {
  font-family: consolas, Menlo, monospace, 'PingFang SC', 'Microsoft YaHei';
}
code {
  border-radius: 3px;
  font-size: 0.875em;
  padding: 2px 4px;
  overflow-wrap: break-word;
}
kbd {
  border: 2px solid #ccc;
  border-radius: 0.2em;
  box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1);
  font-family: inherit;
  padding: 0.1em 0.3em;
  white-space: nowrap;
}
figure.highlight {
  overflow: auto;
  position: relative;
}
figure.highlight pre {
  border: 0;
  margin: 0;
  padding: 10px 0;
}
figure.highlight table {
  border: 0;
  margin: 0;
  width: auto;
}
figure.highlight td {
  border: 0;
  padding: 0;
}
figure.highlight .gutter {
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}
figure.highlight .gutter pre {
  background: var(--highlight-gutter-background);
  color: var(--highlight-gutter-foreground);
  padding-left: 10px;
  padding-right: 10px;
  text-align: right;
}
figure.highlight .code pre {
  padding-left: 10px;
  width: 100%;
}
figure.highlight .marked {
  background: rgba(0,0,0,0.3);
}
pre .caption,
pre figcaption {
  margin-bottom: 10px;
}
.gist table {
  width: auto;
}
.gist table td {
  border: 0;
}
pre {
  overflow: auto;
  padding: 10px;
}
pre code {
  background: none;
  padding: 0;
  text-shadow: none;
}
.blockquote-center {
  border-left: 0;
  margin: 40px 0;
  padding: 0;
  position: relative;
  text-align: center;
}
.blockquote-center::before,
.blockquote-center::after {
  left: 0;
  line-height: 1;
  opacity: 0.6;
  position: absolute;
  width: 100%;
}
.blockquote-center::before {
  border-top: 1px solid #ccc;
  text-align: left;
  top: -20px;
  content: '\f10d';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.blockquote-center::after {
  border-bottom: 1px solid #ccc;
  bottom: -20px;
  text-align: right;
  content: '\f10e';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.blockquote-center p,
.blockquote-center div {
  text-align: center;
}
.group-picture {
  margin-bottom: 20px;
}
.group-picture .group-picture-row {
  display: flex;
  gap: 3px;
  margin-bottom: 3px;
}
.group-picture .group-picture-column {
  flex: 1;
}
.group-picture .group-picture-column img {
  height: 100%;
  margin: 0;
  object-fit: cover;
  width: 100%;
}
.post-body .label {
  color: #555;
  padding: 0 2px;
}
.post-body .label.default {
  background: #f0f0f0;
}
.post-body .label.primary {
  background: #efe6f7;
}
.post-body .label.info {
  background: #e5f2f8;
}
.post-body .label.success {
  background: #e7f4e9;
}
.post-body .label.warning {
  background: #fcf6e1;
}
.post-body .label.danger {
  background: #fae8eb;
}
.post-body .link-grid {
  display: grid;
  grid-gap: 1.5rem;
  gap: 1.5rem;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 20px;
  padding: 1rem;
}
@media (max-width: 767px) {
  .post-body .link-grid {
    grid-template-columns: 1fr;
  }
}
.post-body .link-grid .link-grid-container {
  border: solid #ddd;
  box-shadow: 1rem 1rem 0.5rem rgba(0,0,0,0.5);
  min-height: 5rem;
  min-width: 0;
  padding: 0.5rem;
  position: relative;
  transition: background 0.3s;
}
.post-body .link-grid .link-grid-container:hover {
  animation: next-shake 0.5s;
  background: var(--card-bg-color);
}
.post-body .link-grid .link-grid-container:active {
  box-shadow: 0.5rem 0.5rem 0.25rem rgba(0,0,0,0.5);
  transform: translate(0.2rem, 0.2rem);
}
.post-body .link-grid .link-grid-container .link-grid-image {
  border: 1px solid #ddd;
  border-radius: 50%;
  box-sizing: border-box;
  height: 5rem;
  padding: 3px;
  position: absolute;
  width: 5rem;
}
.post-body .link-grid .link-grid-container p {
  margin: 0 1rem 0 6rem;
}
.post-body .link-grid .link-grid-container p:first-of-type {
  font-size: 1.2em;
}
.post-body .link-grid .link-grid-container p:last-of-type {
  font-size: 0.8em;
  line-height: 1.3rem;
  opacity: 0.7;
}
.post-body .link-grid .link-grid-container a {
  border: 0;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
@keyframes next-shake {
  0% {
    transform: translate(1pt, 1pt) rotate(0deg);
  }
  10% {
    transform: translate(-1pt, -2pt) rotate(-1deg);
  }
  20% {
    transform: translate(-3pt, 0pt) rotate(1deg);
  }
  30% {
    transform: translate(3pt, 2pt) rotate(0deg);
  }
  40% {
    transform: translate(1pt, -1pt) rotate(1deg);
  }
  50% {
    transform: translate(-1pt, 2pt) rotate(-1deg);
  }
  60% {
    transform: translate(-3pt, 1pt) rotate(0deg);
  }
  70% {
    transform: translate(3pt, 1pt) rotate(-1deg);
  }
  80% {
    transform: translate(-1pt, -1pt) rotate(1deg);
  }
  90% {
    transform: translate(1pt, 2pt) rotate(0deg);
  }
  100% {
    transform: translate(1pt, -2pt) rotate(-1deg);
  }
}
.post-body .note {
  border-radius: 3px;
  margin-bottom: 20px;
  padding: 1em;
  position: relative;
  border: 1px solid #eee;
  border-left-width: 5px;
}
.post-body .note summary {
  cursor: pointer;
  outline: 0;
}
.post-body .note summary p {
  display: inline;
}
.post-body .note h2,
.post-body .note h3,
.post-body .note h4,
.post-body .note h5,
.post-body .note h6 {
  border-bottom: initial;
  margin: 0;
  padding-top: 0;
}
.post-body .note :first-child {
  margin-top: 0;
}
.post-body .note :last-child {
  margin-bottom: 0;
}
.post-body .note.default {
  border-left-color: #777;
}
.post-body .note.default h2,
.post-body .note.default h3,
.post-body .note.default h4,
.post-body .note.default h5,
.post-body .note.default h6 {
  color: #777;
}
.post-body .note.primary {
  border-left-color: #6f42c1;
}
.post-body .note.primary h2,
.post-body .note.primary h3,
.post-body .note.primary h4,
.post-body .note.primary h5,
.post-body .note.primary h6 {
  color: #6f42c1;
}
.post-body .note.info {
  border-left-color: #428bca;
}
.post-body .note.info h2,
.post-body .note.info h3,
.post-body .note.info h4,
.post-body .note.info h5,
.post-body .note.info h6 {
  color: #428bca;
}
.post-body .note.success {
  border-left-color: #5cb85c;
}
.post-body .note.success h2,
.post-body .note.success h3,
.post-body .note.success h4,
.post-body .note.success h5,
.post-body .note.success h6 {
  color: #5cb85c;
}
.post-body .note.warning {
  border-left-color: #f0ad4e;
}
.post-body .note.warning h2,
.post-body .note.warning h3,
.post-body .note.warning h4,
.post-body .note.warning h5,
.post-body .note.warning h6 {
  color: #f0ad4e;
}
.post-body .note.danger {
  border-left-color: #d9534f;
}
.post-body .note.danger h2,
.post-body .note.danger h3,
.post-body .note.danger h4,
.post-body .note.danger h5,
.post-body .note.danger h6 {
  color: #d9534f;
}
.post-body .tabs {
  margin-bottom: 20px;
}
.post-body .tabs,
.tabs-comment {
  padding-top: 10px;
}
.post-body .tabs ul.nav-tabs,
.tabs-comment ul.nav-tabs {
  background: var(--content-bg-color);
  display: flex;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0;
  padding: 0;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 5;
}
@media (max-width: 413px) {
  .post-body .tabs ul.nav-tabs,
  .tabs-comment ul.nav-tabs {
    display: block;
    margin-bottom: 5px;
  }
}
.post-body .tabs ul.nav-tabs li.tab,
.tabs-comment ul.nav-tabs li.tab {
  border-bottom: 1px solid #ddd;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-radius: 0 0 0 0;
  border-top: 3px solid transparent;
  flex-grow: 1;
  list-style-type: none;
}
@media (max-width: 413px) {
  .post-body .tabs ul.nav-tabs li.tab,
  .tabs-comment ul.nav-tabs li.tab {
    border-bottom: 1px solid transparent;
    border-left: 3px solid transparent;
    border-right: 1px solid transparent;
    border-top: 1px solid transparent;
  }
}
@media (max-width: 413px) {
  .post-body .tabs ul.nav-tabs li.tab,
  .tabs-comment ul.nav-tabs li.tab {
    border-radius: 0;
  }
}
.post-body .tabs ul.nav-tabs li.tab a,
.tabs-comment ul.nav-tabs li.tab a {
  border-bottom: initial;
  display: block;
  line-height: 1.8;
  padding: 0.25em 0.75em;
  text-align: center;
  transition: all 0.2s ease-out;
}
.post-body .tabs ul.nav-tabs li.tab a i[class^='fa'],
.tabs-comment ul.nav-tabs li.tab a i[class^='fa'] {
  width: 1.285714285714286em;
}
.post-body .tabs ul.nav-tabs li.tab.active,
.tabs-comment ul.nav-tabs li.tab.active {
  border-bottom-color: transparent;
  border-left-color: #ddd;
  border-right-color: #ddd;
  border-top-color: #fc6423;
}
@media (max-width: 413px) {
  .post-body .tabs ul.nav-tabs li.tab.active,
  .tabs-comment ul.nav-tabs li.tab.active {
    border-bottom-color: #ddd;
    border-left-color: #fc6423;
    border-right-color: #ddd;
    border-top-color: #ddd;
  }
}
.post-body .tabs ul.nav-tabs li.tab.active a,
.tabs-comment ul.nav-tabs li.tab.active a {
  cursor: default;
}
.post-body .tabs .tab-content,
.tabs-comment .tab-content {
  border: 1px solid #ddd;
  border-radius: 0 0 0 0;
  border-top-color: transparent;
}
@media (max-width: 413px) {
  .post-body .tabs .tab-content,
  .tabs-comment .tab-content {
    border-radius: 0;
    border-top-color: #ddd;
  }
}
.post-body .tabs .tab-content .tab-pane,
.tabs-comment .tab-content .tab-pane {
  padding: 20px 20px 0;
}
.post-body .tabs .tab-content .tab-pane:not(.active),
.tabs-comment .tab-content .tab-pane:not(.active) {
  display: none;
}
.pagination .prev,
.pagination .next,
.pagination .page-number,
.pagination .space {
  display: inline-block;
  margin: -1px 10px 0;
  padding: 0 10px;
}
@media (max-width: 767px) {
  .pagination .prev,
  .pagination .next,
  .pagination .page-number,
  .pagination .space {
    margin: 0 5px;
  }
}
.pagination .page-number.current {
  background: #ccc;
  border-color: #ccc;
  color: var(--content-bg-color);
}
.pagination {
  border-top: 1px solid #eee;
  margin: 120px 0 0;
  text-align: center;
}
.pagination .prev,
.pagination .next,
.pagination .page-number {
  border-bottom: 0;
  border-top: 1px solid #eee;
  transition: border-color 0.2s ease-in-out;
}
.pagination .prev:hover,
.pagination .next:hover,
.pagination .page-number:hover {
  border-top-color: var(--link-hover-color);
}
@media (max-width: 767px) {
  .pagination {
    border-top: 0;
  }
  .pagination .prev,
  .pagination .next,
  .pagination .page-number {
    border-bottom: 1px solid #eee;
    border-top: 0;
  }
  .pagination .prev:hover,
  .pagination .next:hover,
  .pagination .page-number:hover {
    border-bottom-color: var(--link-hover-color);
  }
}
.pagination .space {
  margin: 0;
  padding: 0;
}
.comments {
  margin-top: 60px;
  overflow: hidden;
}
.comment-button-group {
  display: flex;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  justify-content: center;
  margin: 1em 0;
}
.comment-button-group .comment-button {
  margin: 0.1em 0.2em;
}
.comment-button-group .comment-button.active {
  background: var(--btn-default-hover-bg);
  border-color: var(--btn-default-hover-border-color);
  color: var(--btn-default-hover-color);
}
.comment-position {
  display: none;
}
.comment-position.active {
  display: block;
}
.tabs-comment {
  margin-top: 4em;
  padding-top: 0;
}
.tabs-comment .comments {
  margin-top: 0;
  padding-top: 0;
}
.headband {
  background: var(--theme-color);
  height: 3px;
}
@media (max-width: 991px) {
  .headband {
    display: none;
  }
}
.site-brand-container {
  display: flex;
  flex-shrink: 0;
  padding: 0 10px;
}
.use-motion .column,
.use-motion .site-brand-container .toggle {
  opacity: 0;
}
.site-meta {
  flex-grow: 1;
  text-align: center;
}
@media (max-width: 767px) {
  .site-meta {
    text-align: center;
  }
}
.custom-logo-image {
  margin-top: 20px;
}
@media (max-width: 991px) {
  .custom-logo-image {
    display: none;
  }
}
.brand {
  border-bottom: 0;
  color: var(--brand-color);
  display: inline-block;
  padding: 0;
}
.brand:hover {
  color: var(--brand-hover-color);
}
.site-title {
  font-family: Noto Sans JP, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 1.375em;
  font-weight: normal;
  line-height: 1.5;
  margin: 0;
}
.site-subtitle {
  color: #ddd;
  font-size: 0.8125em;
  margin: 10px 10px 0;
}
.use-motion .site-title,
.use-motion .site-subtitle,
.use-motion .custom-logo-image {
  opacity: 0;
  position: relative;
  top: -10px;
}
.site-nav-toggle,
.site-nav-right {
  display: none;
}
@media (max-width: 767px) {
  .site-nav-toggle,
  .site-nav-right {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
.site-nav-toggle .toggle,
.site-nav-right .toggle {
  color: var(--text-color);
  padding: 10px;
  width: 22px;
}
.site-nav-toggle .toggle .toggle-line,
.site-nav-right .toggle .toggle-line {
  background: var(--text-color);
  border-radius: 1px;
}
@media (max-width: 767px) {
  .site-nav {
    --scroll-height: 0;
    height: 0;
    overflow: hidden;
    transition: 0.2s ease-in-out;
    transition-property: height, visibility;
    visibility: hidden;
  }
  body:not(.site-nav-on) .site-nav .animated {
    animation: none;
  }
  body.site-nav-on .site-nav {
    height: var(--scroll-height);
    visibility: unset;
  }
}
.menu {
  margin: 0;
  padding: 1em 0;
  text-align: center;
}
.menu-item {
  display: inline-block;
  list-style: none;
  margin: 0 10px;
}
@media (max-width: 767px) {
  .menu-item {
    display: block;
    margin-top: 10px;
  }
  .menu-item.menu-item-search {
    display: none;
  }
}
.menu-item a {
  border-bottom: 0;
  display: block;
  font-size: 0.8125em;
  transition: border-color 0.2s ease-in-out;
}
.menu-item a:hover,
.menu-item a.menu-item-active {
  background: var(--menu-item-bg-color);
}
.menu-item i[class^='fa'] {
  margin-right: 8px;
}
.menu-item .badge {
  background: #ccc;
  border-radius: 10px;
  color: var(--content-bg-color);
  font-weight: bold;
  line-height: 1;
  margin-left: 0.35em;
  padding: 2px 5px;
  text-shadow: 1px 1px 0 rgba(0,0,0,0.1);
}
.use-motion .menu-item {
  visibility: hidden;
}
@media (max-width: 991px) {
  .sidebar {
    left: -320px;
  }
  .sidebar-active .sidebar {
    left: 0;
  }
  .sidebar {
    background: #222;
    bottom: 0;
    box-shadow: inset 0 2px 6px #000;
    max-height: 100vh;
    overflow-y: auto;
    position: fixed;
    top: 0;
    transition: 0.2s ease-out;
    transition-property: left, right;
    width: 320px;
    z-index: 20;
  }
  .sidebar a {
    border-bottom-color: #555;
    color: #999;
  }
  .sidebar a:hover {
    border-bottom-color: #eee;
    color: #eee;
  }
  .links-of-author:not(:first-child) {
    margin-top: 15px;
  }
  .links-of-author a {
    border-bottom-color: #555;
    display: inline-block;
    margin-bottom: 10px;
    margin-right: 10px;
    vertical-align: middle;
  }
  .links-of-author a::before {
    background: #7e41a7;
    display: inline-block;
    margin-right: 3px;
    transform: translateY(-2px);
    border-radius: 50%;
    content: ' ';
    height: 4px;
    width: 4px;
  }
  .links-of-blogroll-item {
    padding: 2px 10px;
  }
  .links-of-blogroll-item a {
    box-sizing: border-box;
    display: inline-block;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .popular-posts .popular-posts-item .popular-posts-link:hover {
    background: none;
  }
  .sidebar-dimmer {
    background: #000;
    height: 100%;
    left: 0;
    opacity: 0;
    position: fixed;
    top: 0;
    transition: visibility 0.4s, opacity 0.4s;
    visibility: hidden;
    width: 100%;
    z-index: 10;
  }
  .sidebar-active .sidebar-dimmer {
    opacity: 0.7;
    visibility: visible;
  }
}
.sidebar-inner {
  color: #999;
  padding: 18px 10px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cc-license .cc-opacity {
  border-bottom: 0;
  opacity: 0.7;
}
.cc-license .cc-opacity:hover {
  opacity: 0.9;
}
.cc-license img {
  display: inline-block;
}
.site-author-image {
  border: 1px solid #eee;
  max-width: 120px;
  padding: 2px;
  border-radius: 50%;
}
.site-author-name {
  color: var(--text-color);
  font-weight: 600;
  margin: 0;
}
.site-description {
  color: #999;
  font-size: 0.8125em;
  margin-top: 0;
}
.links-of-author a {
  font-size: 0.8125em;
}
.links-of-author i[class^='fa'] {
  margin-right: 2px;
}
.sidebar .sidebar-button:not(:first-child) {
  margin-top: 15px;
}
.sidebar .sidebar-button button {
  background: transparent;
  color: #fc6423;
  cursor: pointer;
  line-height: 2;
  padding: 0 15px;
  border: 1px solid #fc6423;
  border-radius: 4px;
}
.sidebar .sidebar-button button:hover {
  background: #fc6423;
  color: #fff;
}
.sidebar .sidebar-button button i[class^='fa'] {
  margin-right: 5px;
}
.links-of-blogroll {
  font-size: 0.8125em;
}
.links-of-blogroll-title {
  font-size: 0.875em;
  font-weight: 600;
}
.links-of-blogroll-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sidebar-nav {
  font-size: 0.875em;
  height: 0;
  margin: 0;
  overflow: hidden;
  padding-left: 0;
  pointer-events: none;
  transition: 0.2s ease-in-out;
  transition-property: height, visibility;
  visibility: hidden;
}
.sidebar-nav-active .sidebar-nav {
  height: calc(2em + 1px);
  pointer-events: unset;
  visibility: unset;
}
.sidebar-nav li {
  border-bottom: 1px solid transparent;
  color: var(--text-color);
  cursor: pointer;
  display: inline-block;
  transition: 0.2s ease-in-out;
  transition-property: border-bottom-color, color;
}
.sidebar-nav li.sidebar-nav-overview {
  margin-left: 10px;
}
.sidebar-nav li:hover {
  color: #fc6423;
}
.sidebar-toc-active .sidebar-nav-toc,
.sidebar-overview-active .sidebar-nav-overview {
  border-bottom-color: #fc6423;
  color: #fc6423;
  transition-delay: 0.2s;
}
.sidebar-toc-active .sidebar-nav-toc:hover,
.sidebar-overview-active .sidebar-nav-overview:hover {
  color: #fc6423;
}
.sidebar-panel-container {
  align-items: start;
  display: grid;
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
  padding-top: 0;
  transition: padding-top 0.2s ease-in-out;
}
.sidebar-nav-active .sidebar-panel-container {
  padding-top: 20px;
}
.sidebar-panel {
  animation: deactivate-sidebar-panel 0.2s ease-in-out;
  grid-area: 1/1;
  height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(0);
  transition: 0.2s ease-in-out;
  transition-delay: 0s;
  transition-property: opacity, transform, visibility;
  visibility: hidden;
}
.sidebar-nav-active .sidebar-panel,
.sidebar-overview-active .sidebar-panel.post-toc-wrap {
  transform: translateY(-20px);
}
.sidebar-overview-active:not(.sidebar-nav-active) .sidebar-panel.post-toc-wrap {
  transition-delay: 0s, 0.2s, 0s;
}
.sidebar-overview-active .sidebar-panel.site-overview-wrap,
.sidebar-toc-active .sidebar-panel.post-toc-wrap {
  animation-name: activate-sidebar-panel;
  height: auto;
  opacity: 1;
  pointer-events: unset;
  transform: translateY(0);
  transition-delay: 0.2s, 0.2s, 0s;
  visibility: unset;
}
.sidebar-panel.site-overview-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  justify-content: flex-start;
}
@keyframes deactivate-sidebar-panel {
  from {
    height: var(--inactive-panel-height, 0);
  }
  to {
    height: var(--active-panel-height, 0);
  }
}
@keyframes activate-sidebar-panel {
  from {
    height: var(--inactive-panel-height, auto);
  }
  to {
    height: var(--active-panel-height, auto);
  }
}
.sidebar-toggle {
  bottom: 61px;
  height: 16px;
  padding: 5px;
  width: 16px;
  background: #222;
  cursor: pointer;
  opacity: 0.6;
  position: fixed;
  z-index: 30;
  left: 30px;
}
@media (max-width: 991px) {
  .sidebar-toggle {
    left: 20px;
  }
}
.sidebar-toggle:hover {
  opacity: 0.8;
}
@media (max-width: 991px) {
  .sidebar-toggle {
    opacity: 0.8;
  }
}
.sidebar-toggle:hover .toggle-line {
  background: #fc6423;
}
@media (any-hover: hover) {
  body:not(.sidebar-active) .sidebar-toggle:hover :first-child {
    left: 50%;
    top: 2px;
    transform: rotate(45deg);
    width: 50%;
  }
  body:not(.sidebar-active) .sidebar-toggle:hover :last-child {
    left: 50%;
    top: -2px;
    transform: rotate(-45deg);
    width: 50%;
  }
}
.sidebar-active .sidebar-toggle :nth-child(2) {
  opacity: 0;
}
.sidebar-active .sidebar-toggle :first-child {
  top: 6px;
  transform: rotate(45deg);
}
.sidebar-active .sidebar-toggle :last-child {
  top: -6px;
  transform: rotate(-45deg);
}
.post-toc {
  font-size: 0.875em;
}
.post-toc ol {
  list-style: none;
  margin: 0;
  padding: 0 2px 0 10px;
  text-align: left;
}
.post-toc ol > :last-child {
  margin-bottom: 5px;
}
.post-toc ol > ol {
  padding-left: 0;
}
.post-toc ol a {
  transition: all 0.2s ease-in-out;
}
.post-toc .nav-item {
  line-height: 1.8;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.post-toc .nav .nav-child {
  --height: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition-property: height, opacity, visibility;
  transition: 0.2s ease-in-out;
  visibility: hidden;
}
.post-toc .nav .active > .nav-child {
  height: var(--height, auto);
  opacity: 1;
  visibility: unset;
}
.post-toc .nav .active > a {
  border-bottom-color: #fc6423;
  color: #fc6423;
}
.post-toc .nav .active-current > a {
  color: #fc6423;
}
.post-toc .nav .active-current > a:hover {
  color: #fc6423;
}
.site-state {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  line-height: 1.4;
}
.site-state-item {
  padding: 0 15px;
}
.site-state-item a {
  border-bottom: 0;
  display: block;
}
.site-state-item-count {
  display: block;
  font-size: 1em;
  font-weight: 600;
}
.site-state-item-name {
  color: #999;
  font-size: 0.8125em;
}
.sidebar-post-related {
  font-size: 0.8125em;
  padding: 18px 0 0 0;
}
.popular-posts {
  margin: 0;
  padding: 1em 0;
  text-align: left;
}
.popular-posts .popular-posts-item {
  display: block;
}
.popular-posts .popular-posts-item .popular-posts-link {
  border-bottom: 0;
  display: block;
  padding: 5px 20px;
  transition: background 0.2s ease-in-out;
}
.popular-posts .popular-posts-item .popular-posts-link:hover {
  background: var(--menu-item-bg-color);
}
.popular-posts .popular-posts-item .popular-posts-time {
  color: #999;
}
.footer {
  color: #999;
  font-size: 0.875em;
  padding: 20px 0;
  transition: 0.2s ease-in-out;
  transition-property: left, right;
}
.footer.footer-fixed {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
}
.footer-inner {
  box-sizing: border-box;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  width: calc(100% - 20px);
}
@media (max-width: 767px) {
  .footer-inner {
    width: auto;
  }
}
@media (min-width: 1200px) {
  .footer-inner {
    width: 1160px;
  }
}
@media (min-width: 1600px) {
  .footer-inner {
    width: 73%;
  }
}
.use-motion .footer {
  opacity: 0;
}
.languages {
  display: inline-block;
  font-size: 1.125em;
  position: relative;
}
.languages .lang-select-label span {
  margin: 0 0.5em;
}
.languages .lang-select {
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.with-love {
  color: #f00;
  display: inline-block;
  margin: 0 5px;
}
@keyframes icon-animate {
  0%, 100% {
    transform: scale(1);
  }
  10%, 30% {
    transform: scale(0.9);
  }
  20%, 40%, 60%, 80% {
    transform: scale(1.1);
  }
  50%, 70% {
    transform: scale(1.1);
  }
}
.back-to-top {
  font-size: 12px;
  align-items: center;
  bottom: -100px;
  color: #fff;
  display: flex;
  height: 26px;
  transition: 0.2s ease-in-out;
  transition-property: bottom;
  background: #222;
  cursor: pointer;
  opacity: 0.6;
  position: fixed;
  z-index: 30;
  left: 30px;
}
.back-to-top span {
  margin-right: 8px;
  display: none;
}
.back-to-top .fa {
  text-align: center;
  width: 26px;
}
@media (max-width: 991px) {
  .back-to-top {
    left: 20px;
  }
}
.back-to-top:hover {
  opacity: 0.8;
}
@media (max-width: 991px) {
  .back-to-top {
    opacity: 0.8;
  }
}
.back-to-top:hover {
  color: #fc6423;
}
.back-to-top.back-to-top-on {
  bottom: 30px;
}
.rtl.post-body p,
.rtl.post-body a,
.rtl.post-body h1,
.rtl.post-body h2,
.rtl.post-body h3,
.rtl.post-body h4,
.rtl.post-body h5,
.rtl.post-body h6,
.rtl.post-body li,
.rtl.post-body ul,
.rtl.post-body ol {
  direction: rtl;
  font-family: UKIJ Ekran;
}
.rtl.post-title {
  font-family: UKIJ Ekran;
}
.post-button {
  margin-top: 40px;
  text-align: center;
}
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments {
  visibility: hidden;
}
.use-motion .post-header {
  visibility: hidden;
}
.use-motion .post-body {
  visibility: hidden;
}
.use-motion .collection-header {
  visibility: hidden;
}
.posts-collapse .post-content {
  margin-bottom: 35px;
  margin-left: 35px;
  position: relative;
}
@media (max-width: 767px) {
  .posts-collapse .post-content {
    margin-left: 0;
    margin-right: 0;
  }
}
.posts-collapse .post-content .collection-title {
  font-size: 1.125em;
  position: relative;
}
.posts-collapse .post-content .collection-title::before {
  background: #999;
  border: 1px solid #fff;
  margin-left: -6px;
  margin-top: -4px;
  position: absolute;
  top: 50%;
  border-radius: 50%;
  content: ' ';
  height: 10px;
  width: 10px;
}
.posts-collapse .post-content .collection-year {
  font-size: 1.5em;
  font-weight: bold;
  margin: 60px 0;
  position: relative;
}
.posts-collapse .post-content .collection-year .collection-year-count {
  font-size: 0.75em;
  background: #ccc;
  border-radius: 10px;
  color: var(--content-bg-color);
  font-weight: bold;
  line-height: 1;
  margin-left: 0.35em;
  padding: 2px 5px;
  text-shadow: 1px 1px 0 rgba(0,0,0,0.1);
}
.posts-collapse .post-content .collection-year::before {
  background: #bbb;
  margin-left: -4px;
  margin-top: -4px;
  position: absolute;
  top: 50%;
  border-radius: 50%;
  content: ' ';
  height: 8px;
  width: 8px;
}
.posts-collapse .post-content .collection-header {
  display: block;
  margin-left: 20px;
}
.posts-collapse .post-content .collection-header small {
  color: #bbb;
  margin-left: 5px;
}
.posts-collapse .post-content .post-header {
  border-bottom: 1px dashed #ccc;
  margin: 30px 2px 0;
  padding-left: 15px;
  position: relative;
  transition: border 0.2s ease-in-out;
}
.posts-collapse .post-content .post-header::before {
  background: #bbb;
  border: 1px solid #fff;
  left: -6px;
  position: absolute;
  top: 0.75em;
  transition: background 0.2s ease-in-out;
  border-radius: 50%;
  content: ' ';
  height: 6px;
  width: 6px;
}
.posts-collapse .post-content .post-header:hover {
  border-bottom-color: #666;
}
.posts-collapse .post-content .post-header:hover::before {
  background: #222;
}
.posts-collapse .post-content .post-meta-container {
  display: inline;
  font-size: 0.75em;
  margin-right: 10px;
}
.posts-collapse .post-content .post-title {
  display: inline;
}
.posts-collapse .post-content .post-title a {
  border-bottom: 0;
  color: var(--link-color);
}
.posts-collapse .post-content .post-title .fa {
  font-size: 0.875em;
  margin-left: 5px;
}
.posts-collapse .post-content::before {
  background: #f5f5f5;
  content: ' ';
  height: 100%;
  margin-left: -2px;
  position: absolute;
  top: 1.25em;
  width: 4px;
}
.post-body {
  font-family: Noto Sans JP, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  overflow-wrap: break-word;
}
@media (min-width: 1200px) {
  .post-body {
    font-size: 1.125em;
  }
}
@media (min-width: 992px) {
  .post-body {
    text-align: justify;
  }
}
@media (max-width: 991px) {
  .post-body {
    text-align: justify;
  }
}
.post-body h1 .header-anchor,
.post-body h2 .header-anchor,
.post-body h3 .header-anchor,
.post-body h4 .header-anchor,
.post-body h5 .header-anchor,
.post-body h6 .header-anchor,
.post-body h1 .headerlink,
.post-body h2 .headerlink,
.post-body h3 .headerlink,
.post-body h4 .headerlink,
.post-body h5 .headerlink,
.post-body h6 .headerlink {
  border-bottom-style: none;
  color: inherit;
  float: right;
  font-size: 0.875em;
  margin-left: 10px;
  opacity: 0;
}
.post-body h1 .header-anchor::before,
.post-body h2 .header-anchor::before,
.post-body h3 .header-anchor::before,
.post-body h4 .header-anchor::before,
.post-body h5 .header-anchor::before,
.post-body h6 .header-anchor::before,
.post-body h1 .headerlink::before,
.post-body h2 .headerlink::before,
.post-body h3 .headerlink::before,
.post-body h4 .headerlink::before,
.post-body h5 .headerlink::before,
.post-body h6 .headerlink::before {
  content: '\f0c1';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.post-body h1:hover .header-anchor,
.post-body h2:hover .header-anchor,
.post-body h3:hover .header-anchor,
.post-body h4:hover .header-anchor,
.post-body h5:hover .header-anchor,
.post-body h6:hover .header-anchor,
.post-body h1:hover .headerlink,
.post-body h2:hover .headerlink,
.post-body h3:hover .headerlink,
.post-body h4:hover .headerlink,
.post-body h5:hover .headerlink,
.post-body h6:hover .headerlink {
  opacity: 0.5;
}
.post-body h1:hover .header-anchor:hover,
.post-body h2:hover .header-anchor:hover,
.post-body h3:hover .header-anchor:hover,
.post-body h4:hover .header-anchor:hover,
.post-body h5:hover .header-anchor:hover,
.post-body h6:hover .header-anchor:hover,
.post-body h1:hover .headerlink:hover,
.post-body h2:hover .headerlink:hover,
.post-body h3:hover .headerlink:hover,
.post-body h4:hover .headerlink:hover,
.post-body h5:hover .headerlink:hover,
.post-body h6:hover .headerlink:hover {
  opacity: 1;
}
.post-body .exturl .fa {
  font-size: 0.875em;
  margin-left: 4px;
}
.post-body img + figcaption,
.post-body .fancybox + figcaption {
  color: #999;
  font-size: 0.875em;
  font-weight: bold;
  line-height: 1;
  margin: -15px auto 15px;
  text-align: center;
}
.post-body iframe,
.post-body img,
.post-body video,
.post-body embed {
  margin-bottom: 20px;
}
.post-body .video-container {
  height: 0;
  margin-bottom: 20px;
  overflow: hidden;
  padding-top: 75%;
  position: relative;
  width: 100%;
}
.post-body .video-container iframe,
.post-body .video-container object,
.post-body .video-container embed {
  height: 100%;
  left: 0;
  margin: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.post-gallery {
  display: flex;
  min-height: 200px;
}
.post-gallery .post-gallery-image {
  flex: 1;
}
.post-gallery .post-gallery-image:not(:first-child) {
  clip-path: polygon(40px 0, 100% 0, 100% 100%, 0 100%);
  margin-left: -20px;
}
.post-gallery .post-gallery-image:not(:last-child) {
  margin-right: -20px;
}
.post-gallery .post-gallery-image img {
  height: 100%;
  object-fit: cover;
  opacity: 1;
  width: 100%;
}
.posts-expand .post-gallery {
  margin-bottom: 60px;
}
.posts-collapse .post-gallery {
  margin: 15px 0;
}
.posts-expand .post-header {
  font-size: 1.125em;
  margin-bottom: 60px;
  text-align: center;
}
.posts-expand .post-title {
  font-size: 1.5em;
  font-weight: normal;
  margin: initial;
  overflow-wrap: break-word;
}
.posts-expand .post-title-link {
  border-bottom: 0;
  color: var(--link-color);
  display: inline-block;
  position: relative;
}
.posts-expand .post-title-link::before {
  background: var(--link-color);
  bottom: 0;
  content: '';
  height: 2px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transition: transform 0.2s ease-in-out;
  width: 100%;
}
.posts-expand .post-title-link:hover::before {
  transform: scaleX(1);
}
.posts-expand .post-title-link .fa {
  font-size: 0.875em;
  margin-left: 5px;
}
.post-sticky-flag {
  display: inline-block;
  margin-right: 8px;
  transform: rotate(30deg);
}
.posts-expand .post-meta-container {
  color: #999;
  font-family: Noto Sans JP, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 0.75em;
  margin-top: 3px;
}
.posts-expand .post-meta-container .post-description {
  font-size: 0.875em;
  margin-top: 2px;
}
.posts-expand .post-meta-container time {
  border-bottom: 1px dashed #999;
}
.post-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
:not(.post-meta-break) + .post-meta-item::before {
  content: '|';
  margin: 0 0.5em;
}
.post-meta-item-icon {
  margin-right: 3px;
}
@media (max-width: 991px) {
  .post-meta-item-text {
    display: none;
  }
}
.post-meta-break {
  flex-basis: 100%;
  height: 0;
}
.post-nav {
  border-top: 1px solid #eee;
  display: flex;
  gap: 30px;
  justify-content: space-between;
  margin-top: 1em;
  padding: 10px 5px 0;
}
.post-nav-item {
  flex: 1;
}
.post-nav-item a {
  border-bottom: 0;
  display: block;
  font-size: 0.875em;
  line-height: 1.6;
}
.post-nav-item a:active {
  top: 2px;
}
.post-nav-item .fa {
  font-size: 0.75em;
}
.post-nav-item:first-child .fa {
  margin-right: 5px;
}
.post-nav-item:last-child {
  text-align: right;
}
.post-nav-item:last-child .fa {
  margin-left: 5px;
}
.post-footer {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.post-eof {
  background: #ccc;
  height: 1px;
  margin: 80px auto 60px;
  width: 8%;
}
.post-block:last-of-type .post-eof {
  display: none;
}
.post-tags {
  margin-top: 40px;
  text-align: center;
}
.post-tags a {
  display: inline-block;
  font-size: 0.8125em;
}
.post-tags a:not(:last-child) {
  margin-right: 10px;
}
.social-like {
  border-top: 1px solid #eee;
  font-size: 0.875em;
  margin-top: 1em;
  padding-top: 1em;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.social-like a {
  border-bottom: none;
}
.reward-container {
  margin: 1em 0 0;
  padding: 1em 0;
  text-align: center;
}
.reward-container button {
  background: transparent;
  color: #fc6423;
  cursor: pointer;
  line-height: 2;
  padding: 0 15px;
  border: 2px solid #fc6423;
  border-radius: 2px;
  outline: 0;
  vertical-align: text-top;
}
.reward-container button:hover {
  background: #fc6423;
  color: #fff;
}
.post-reward {
  display: none;
  padding-top: 20px;
}
.post-reward.active {
  display: block;
}
.post-reward div {
  display: inline-block;
}
.post-reward div span {
  display: block;
}
.post-reward img {
  display: inline-block;
  margin: 0.8em 2em 0;
  max-width: 100%;
  width: 180px;
}
@keyframes next-roll {
  from {
    transform: rotateZ(30deg);
  }
  to {
    transform: rotateZ(-30deg);
  }
}
.category-all-page .category-all-title {
  text-align: center;
}
.category-all-page .category-all {
  margin-top: 20px;
}
.category-all-page .category-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.category-all-page .category-list-item {
  margin: 5px 10px;
}
.category-all-page .category-list-count {
  font-size: 0.75em;
  background: #ccc;
  border-radius: 10px;
  color: var(--content-bg-color);
  font-weight: bold;
  line-height: 1;
  margin-left: 0.35em;
  padding: 2px 5px;
  text-shadow: 1px 1px 0 rgba(0,0,0,0.1);
}
.category-all-page .category-list-child {
  padding-left: 10px;
}
.event-list hr {
  background: #222;
  margin: 20px 0 45px;
}
.event-list hr::after {
  background: #222;
  color: #fff;
  content: 'NOW';
  display: inline-block;
  font-weight: bold;
  padding: 0 5px;
}
.event-list .event {
  --event-background: #222;
  --event-foreground: #bbb;
  --event-title: #fff;
  background: var(--event-background);
  padding: 15px;
}
.event-list .event .event-summary {
  border-bottom: 0;
  color: var(--event-title);
  margin: 0;
  padding: 0 0 0 35px;
  position: relative;
}
.event-list .event .event-summary::before {
  animation: dot-flash 1s alternate infinite ease-in-out;
  background: var(--event-title);
  left: 0;
  margin-top: -6px;
  position: absolute;
  top: 50%;
  border-radius: 50%;
  content: ' ';
  height: 12px;
  width: 12px;
}
.event-list .event:nth-of-type(odd) .event-summary::before {
  animation-delay: 0.5s;
}
.event-list .event:not(:last-child) {
  margin-bottom: 20px;
}
.event-list .event .event-relative-time {
  color: var(--event-foreground);
  display: inline-block;
  font-size: 12px;
  font-weight: normal;
  padding-left: 12px;
}
.event-list .event .event-details {
  color: var(--event-foreground);
  display: block;
  line-height: 18px;
  padding: 6px 0 6px 35px;
}
.event-list .event .event-details::before {
  color: var(--event-foreground);
  display: inline-block;
  margin-right: 9px;
  width: 14px;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
}
.event-list .event .event-details.event-location::before {
  content: '\f041';
}
.event-list .event .event-details.event-duration::before {
  content: '\f017';
}
.event-list .event .event-details.event-description::before {
  content: '\f024';
}
.event-list .event-past {
  --event-background: #f5f5f5;
  --event-foreground: #999;
  --event-title: #222;
}
@keyframes dot-flash {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.8);
  }
}
ul.breadcrumb {
  font-size: 0.75em;
  list-style: none;
  margin: 1em 0;
  padding: 0 2em;
  text-align: center;
}
ul.breadcrumb li {
  display: inline;
}
ul.breadcrumb li:not(:first-child)::before {
  content: '/\00a0';
  font-weight: normal;
  padding: 0.5em;
}
ul.breadcrumb li:last-child {
  font-weight: bold;
}
.tag-cloud {
  text-align: center;
}
.tag-cloud a {
  display: inline-block;
  margin: 10px;
}
.tag-cloud-0 {
  border-bottom-color: #aaa;
  color: #aaa;
}
.tag-cloud-1 {
  border-bottom-color: #9a9a9a;
  color: #9a9a9a;
}
.tag-cloud-2 {
  border-bottom-color: #8b8b8b;
  color: #8b8b8b;
}
.tag-cloud-3 {
  border-bottom-color: #7c7c7c;
  color: #7c7c7c;
}
.tag-cloud-4 {
  border-bottom-color: #6c6c6c;
  color: #6c6c6c;
}
.tag-cloud-5 {
  border-bottom-color: #5d5d5d;
  color: #5d5d5d;
}
.tag-cloud-6 {
  border-bottom-color: #4e4e4e;
  color: #4e4e4e;
}
.tag-cloud-7 {
  border-bottom-color: #3e3e3e;
  color: #3e3e3e;
}
.tag-cloud-8 {
  border-bottom-color: #2f2f2f;
  color: #2f2f2f;
}
.tag-cloud-9 {
  border-bottom-color: #202020;
  color: #202020;
}
.tag-cloud-10 {
  border-bottom-color: #111;
  color: #111;
}
.search-active {
  overflow: hidden;
}
.search-pop-overlay {
  background: rgba(0,0,0,0);
  display: flex;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  transition: visibility 0.4s, background 0.4s;
  visibility: hidden;
  width: 100%;
  z-index: 40;
}
.search-active .search-pop-overlay {
  background: rgba(0,0,0,0.3);
  visibility: visible;
}
.search-popup {
  background: var(--card-bg-color);
  border-radius: 5px;
  height: 80%;
  margin: auto;
  transform: scale(0);
  transition: transform 0.4s;
  width: 700px;
}
.search-active .search-popup {
  transform: scale(1);
}
@media (max-width: 767px) {
  .search-popup {
    border-radius: 0;
    height: 100%;
    width: 100%;
  }
}
.search-popup .search-icon,
.search-popup .popup-btn-close {
  color: #999;
  font-size: 18px;
  padding: 0 10px;
}
.search-popup .popup-btn-close {
  cursor: pointer;
}
.search-popup .popup-btn-close:hover .fa {
  color: #222;
}
.search-popup .search-header {
  background: #eee;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  display: flex;
  padding: 5px;
}
.search-popup input.search-input {
  background: transparent;
  border: 0;
  outline: 0;
  width: 100%;
}
.search-popup input.search-input::-webkit-search-cancel-button {
  display: none;
}
.search-popup .search-result-container {
  display: flex;
  flex-direction: column;
  height: calc(100% - 55px);
  overflow: auto;
  padding: 5px 25px;
}
.search-popup .search-result-container hr {
  flex-shrink: 0;
  margin: 5px 0 10px;
}
.search-popup .search-result-container hr:first-child {
  display: none;
}
.search-popup .search-result-list {
  margin: 0 5px;
  padding: 0;
}
.search-popup a.search-result-title {
  font-weight: bold;
}
.search-popup p.search-result {
  border-bottom: 1px dashed #ccc;
  padding: 5px 0;
}
.search-popup .search-input-container {
  flex-grow: 1;
  padding: 2px;
}
.search-popup .search-result-icon {
  color: #ccc;
  margin: auto;
}
mark.search-keyword {
  background: transparent;
  border-bottom: 1px dashed #ff2a2a;
  color: #ff2a2a;
  font-weight: bold;
}
.use-motion .animated {
  animation-fill-mode: none;
  visibility: inherit;
}
.use-motion .sidebar .animated {
  animation-fill-mode: both;
}
header.header {
  background: var(--content-bg-color);
  border-radius: initial;
  box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12);
}
@media (max-width: 991px) {
  header.header {
    border-radius: initial;
  }
}
.main {
  align-items: stretch;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  width: calc(100% - 20px);
}
@media (max-width: 767px) {
  .main {
    width: auto;
  }
}
@media (min-width: 1200px) {
  .main {
    width: 1160px;
  }
}
@media (min-width: 1600px) {
  .main {
    width: 73%;
  }
}
@media (max-width: 991px) {
  .main {
    display: block;
    width: auto;
  }
}
.main-inner {
  border-radius: initial;
  box-sizing: border-box;
  width: calc(100% - 252px);
}
@media (max-width: 991px) {
  .main-inner {
    border-radius: initial;
    width: 100%;
  }
}
.footer-inner {
  padding-left: 252px;
}
@media (max-width: 991px) {
  .footer-inner {
    padding-left: 0;
    padding-right: 0;
    width: auto;
  }
}
.column {
  width: 240px;
}
@media (max-width: 991px) {
  .column {
    width: auto;
  }
}
.site-brand-container {
  background: var(--theme-color);
}
@media (max-width: 991px) {
  .site-nav-on .site-brand-container {
    box-shadow: 0 0 16px rgba(0,0,0,0.5);
  }
}
.site-meta {
  padding: 20px 0;
}
@media (min-width: 768px) and (max-width: 991px) {
  .site-nav-toggle,
  .site-nav-right {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
.site-nav-toggle .toggle,
.site-nav-right .toggle {
  color: #fff;
}
.site-nav-toggle .toggle .toggle-line,
.site-nav-right .toggle .toggle-line {
  background: #fff;
}
@media (min-width: 768px) and (max-width: 991px) {
  .site-nav {
    --scroll-height: 0;
    height: 0;
    overflow: hidden;
    transition: 0.2s ease-in-out;
    transition-property: height, visibility;
    visibility: hidden;
  }
  body:not(.site-nav-on) .site-nav .animated {
    animation: none;
  }
  body.site-nav-on .site-nav {
    height: var(--scroll-height);
    visibility: unset;
  }
}
.menu .menu-item {
  display: block;
  margin: 0;
}
.menu .menu-item a {
  padding: 5px 20px;
  position: relative;
  transition-property: background-color;
  display: flex;
  align-items: center;
}
.menu .menu-item a .badge {
  margin-left: auto;
}
@media (max-width: 991px) {
  .menu .menu-item.menu-item-search {
    display: none;
  }
}
.sub-menu {
  margin: 0;
  padding: 6px 0;
}
.sub-menu .menu-item {
  display: inline-block;
}
.sub-menu .menu-item a {
  background: transparent;
  margin: 5px 10px;
  padding: initial;
}
.sub-menu .menu-item a:hover {
  background: transparent;
  color: #fc6423;
}
.sub-menu .menu-item-active {
  border-bottom-color: #fc6423;
  color: #fc6423;
}
.sub-menu .menu-item-active:hover {
  border-bottom-color: #fc6423;
}
@media (min-width: 992px) {
  .sidebar {
    position: -webkit-sticky;
    position: sticky;
    top: 12px;
  }
  .sidebar-toggle {
    display: none;
  }
  .sidebar-inner {
    background: var(--content-bg-color);
    border-radius: initial;
    box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09);
    box-sizing: border-box;
    color: var(--text-color);
    margin-top: 12px;
    max-height: calc(100vh - 24px);
    visibility: hidden;
  }
  .site-state-item {
    padding: 0 10px;
  }
  .sidebar .sidebar-button {
    border-bottom: 1px dotted #ccc;
    border-top: 1px dotted #ccc;
  }
  .sidebar .sidebar-button button {
    border: 0;
    color: #fc6423;
    display: block;
    width: 100%;
  }
  .sidebar .sidebar-button button:hover {
    background: none;
    border: 0;
    color: #e34603;
  }
  .links-of-author {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .links-of-author-item {
    margin: 5px 0 0;
    width: 50%;
  }
  .links-of-author-item a {
    box-sizing: border-box;
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    padding: 0 5px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .links-of-author-item a {
    border-bottom: 0;
    border-radius: 4px;
    display: block;
  }
  .links-of-author-item a:hover {
    background: var(--body-bg-color);
  }
}
.main-inner .sub-menu,
.main-inner .post-block,
.main-inner .tabs-comment,
.main-inner > .comments,
.main-inner .comment-position .comments,
.main-inner .pagination {
  background: var(--content-bg-color);
  border-radius: initial;
  box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12);
}
.main-inner .post-block:not(:first-child):not(:first-child) {
  border-radius: initial;
  box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09);
  margin-top: 12px;
}
@media (min-width: 768px) and (max-width: 991px) {
  .main-inner .post-block:not(:first-child):not(:first-child) {
    margin-top: 10px;
  }
}
@media (max-width: 767px) {
  .main-inner .post-block:not(:first-child):not(:first-child) {
    margin-top: 8px;
  }
}
.main-inner .tabs-comment,
.main-inner > .comments,
.main-inner .comment-position .comments,
.main-inner .pagination {
  border-radius: initial;
  box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09);
  margin-top: 12px;
}
@media (min-width: 768px) and (max-width: 991px) {
  .main-inner .tabs-comment,
  .main-inner > .comments,
  .main-inner .comment-position .comments,
  .main-inner .pagination {
    margin-top: 10px;
  }
}
@media (max-width: 767px) {
  .main-inner .tabs-comment,
  .main-inner > .comments,
  .main-inner .comment-position .comments,
  .main-inner .pagination {
    margin-top: 8px;
  }
}
.post-block,
.comments {
  padding: 40px;
}
.post-eof {
  display: none;
}
.pagination {
  border-top: initial;
  padding: 10px 0;
}
.post-body h1,
.post-body h2 {
  border-bottom: 1px solid #eee;
}
.post-body h3 {
  border-bottom: 1px dotted #eee;
}
@media (min-width: 768px) and (max-width: 991px) {
  .main-inner {
    padding: 10px;
  }
  .posts-expand .post-button {
    margin-top: 20px;
  }
  .post-block {
    padding: 20px;
  }
  .comments {
    padding: 10px 20px;
  }
}
@media (max-width: 767px) {
  .main-inner {
    padding: 8px;
  }
  .posts-expand .post-button {
    margin: 12px 0;
  }
  .post-block {
    padding: 12px;
  }
  .comments {
    padding: 10px 12px;
  }
}
@media (min-width: 992px) and (max-width: 991px) {
  .sidebar {
    display: none;
  }
}
.archive .collection-title {
  display: none;
}
frame,
img,
video,
embed {
  display: block;
  margin-left: initial;
  margin-right: initial;
  max-width: 100%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.site-author-image {
  margin-left: auto;
  margin-right: auto;
  box-shadow: none;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29sb3JzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy9ub3JtYWxpemUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2Jhc2Uuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fbWl4aW5zLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWJsZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2J1dHRvbnMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3RvZ2dsZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvc3R5bGVzL2RlZmF1bHQuY3NzIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvaGlnaGxpZ2h0L2luZGV4LnN0eWwiLCJzb3VyY2UvX2RhdGEvc3R5bGVzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2Jsb2NrcXVvdGUtY2VudGVyLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2dyb3VwLXBpY3R1cmVzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2xhYmVsLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2xpbmstZ3JpZC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy9ub3RlLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL3RhYnMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3BhZ2luYXRpb24uc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2NvbW1lbnRzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9pbmRleC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvc2l0ZS1tZXRhLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9zaXRlLW5hdi5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvbWVudS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1hdXRob3Iuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9zaWRlYmFyLWF1dGhvci1saW5rcy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItYnV0dG9uLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1ibG9ncm9sbC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItbmF2LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci10b2dnbGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9zaWRlYmFyLXRvYy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpdGUtc3RhdGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9yZWxhdGVkLXBvc3RzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2Zvb3Rlci9pbmRleC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9iYWNrLXRvLXRvcC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1jb2xsYXBzZS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtYm9keS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtZ2FsbGVyeS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtaGVhZGVyLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1uYXYuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcG9zdC9wb3N0LWZvb3Rlci5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3Qtd2lkZ2V0cy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtcmV3YXJkLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3BhZ2VzL2NhdGVnb3JpZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvc2NoZWR1bGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvYnJlYWRjcnVtYi5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wYWdlcy90YWctY2xvdWQuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvdGhpcmQtcGFydHkvc2VhcmNoLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3RoaXJkLXBhcnR5L2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX3NjaGVtZXMvUGlzY2VzL19sYXlvdXQuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9QaXNjZXMvX2hlYWRlci5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19zY2hlbWVzL1Bpc2Nlcy9fbWVudS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19zY2hlbWVzL1Bpc2Nlcy9fc3ViLW1lbnUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9QaXNjZXMvX3NpZGViYXIuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9HZW1pbmkvaW5kZXguc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQixLQUFqQjtFQUNBLG9CQUFvQixLQUFwQjtFQUNBLGlCQUFpQixRQUFqQjtFQUNBLGNBQWMsS0FBZDtFQUNBLGdCQUFnQixRQUFoQjtFQUNBLG1CQUFtQixLQUFuQjtFQUNBLG9CQUFvQixLQUFwQjtFQUNBLGNBQWMsS0FBZDtFQUNBLG9CQUFvQixLQUFwQjtFQUNBLGVBQWUsS0FBZjtFQUNBLHFCQUFxQixLQUFy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OnJvb3Qge1xuICAtLWJvZHktYmctY29sb3I6ICRib2R5LWJnLWNvbG9yO1xuICAtLWNvbnRlbnQtYmctY29sb3I6ICRjb250ZW50LWJnLWNvbG9yO1xuICAtLWNhcmQtYmctY29sb3I6ICRjYXJkLWJnLWNvbG9yO1xuICAtLXRleHQtY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAtLXNlbGVjdGlvbi1iZzogJHNlbGVjdGlvbi1iZztcbiAgLS1zZWxlY3Rpb24tY29sb3I6ICRzZWxlY3Rpb24tY29sb3I7XG4gIC0tYmxvY2txdW90ZS1jb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gIC0tbGluay1jb2xvcjogJGxpbmstY29sb3I7XG4gIC0tbGluay1ob3Zlci1jb2xvcjogJGxpbmstaG92ZXItY29sb3I7XG4gIC0tYnJhbmQtY29sb3I6ICRicmFuZC1jb2xvcjtcbiAgLS1icmFuZC1ob3Zlci1jb2xvcjogJGJyYW5kLWhvdmVyLWNvbG9yO1xuICAtLXRhYmxlLXJvdy1vZGQtYmctY29sb3I6ICR0YWJsZS1yb3ctb2RkLWJnLWNvbG9yO1xuICAtLXRhYmxlLXJvdy1ob3Zlci1iZy1jb2xvcjogJHRhYmxlLXJvdy1ob3Zlci1iZy1jb2xvcjtcbiAgLS1tZW51LWl0ZW0tYmctY29sb3I6ICRtZW51LWl0ZW0tYmctY29sb3I7XG4gIC0tdGhlbWUtY29sb3I6ICR0aGVtZS1jb2xvcjtcblxuICAtLWJ0bi1kZWZhdWx0LWJnOiAkYnRuLWRlZmF1bHQtYmc7XG4gIC0tYnRuLWRlZmF1bHQtY29sb3I6ICRidG4tZGVmYXVsdC1jb2xvcjtcbiAgLS1idG4tZGVmYXVsdC1ib3JkZXItY29sb3I6ICRidG4tZGVmYXVsdC1ib3JkZXItY29sb3I7XG4gIC0tYnRuLWRlZmF1bHQtaG92ZXItYmc6ICRidG4tZGVmYXVsdC1ob3Zlci1iZztcbiAgLS1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yO1xuICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvcjtcblxuICAtLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWJhY2tncm91bmQ7XG4gIC0taGlnaGxpZ2h0LWZvcmVncm91bmQ6ICRoaWdobGlnaHQtZm9yZWdyb3VuZDtcbiAgLS1oaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQ6ICRoaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQ7XG4gIC0taGlnaGxpZ2h0LWd1dHRlci1mb3JlZ3JvdW5kOiAkaGlnaGxpZ2h0LWd1dHRlci1mb3JlZ3JvdW5kO1xuXG4gIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG59XG5cbmlmIChoZXhvLWNvbmZpZygnZGFya21vZGUnKSkge1xuICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgOnJvb3Qge1xuICAgICAgLS1ib2R5LWJnLWNvbG9yOiAkYm9keS1iZy1jb2xvci1kYXJrO1xuICAgICAgLS1jb250ZW50LWJnLWNvbG9yOiAkY29udGVudC1iZy1jb2xvci1kYXJrO1xuICAgICAgLS1jYXJkLWJnLWNvbG9yOiAkY2FyZC1iZy1jb2xvci1kYXJrO1xuICAgICAgLS10ZXh0LWNvbG9yOiAkdGV4dC1jb2xvci1kYXJrO1xuICAgICAgLS1zZWxlY3Rpb24tYmc6ICRzZWxlY3Rpb24tYmctZGFyaztcbiAgICAgIC0tc2VsZWN0aW9uLWNvbG9yOiAkc2VsZWN0aW9uLWNvbG9yLWRhcms7XG4gICAgICAtLWJsb2NrcXVvdGUtY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yLWRhcms7XG4gICAgICAtLWxpbmstY29sb3I6ICRsaW5rLWNvbG9yLWRhcms7XG4gICAgICAtLWxpbmstaG92ZXItY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yLWRhcms7XG4gICAgICAtLWJyYW5kLWNvbG9yOiAkYnJhbmQtY29sb3ItZGFyaztcbiAgICAgIC0tYnJhbmQtaG92ZXItY29sb3I6ICRicmFuZC1ob3Zlci1jb2xvci1kYXJrO1xuICAgICAgLS10YWJsZS1yb3ctb2RkLWJnLWNvbG9yOiAkdGFibGUtcm93LW9kZC1iZy1jb2xvci1kYXJrO1xuICAgICAgLS10YWJsZS1yb3ctaG92ZXItYmctY29sb3I6ICR0YWJsZS1yb3ctaG92ZXItYmctY29sb3ItZGFyaztcbiAgICAgIC0tbWVudS1pdGVtLWJnLWNvbG9yOiAkbWVudS1pdGVtLWJnLWNvbG9yLWRhcms7XG4gICAgICAtLXRoZW1lLWNvbG9yOiAkdGhlbWUtY29sb3ItZGFyaztcblxuICAgICAgLS1idG4tZGVmYXVsdC1iZzogJGJ0bi1kZWZhdWx0LWJnLWRhcms7XG4gICAgICAtLWJ0bi1kZWZhdWx0LWNvbG9yOiAkYnRuLWRlZmF1bHQtY29sb3ItZGFyaztcbiAgICAgIC0tYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yLWRhcms7XG4gICAgICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWJnOiAkYnRuLWRlZmF1bHQtaG92ZXItYmctZGFyaztcbiAgICAgIC0tYnRuLWRlZmF1bHQtaG92ZXItY29sb3I6ICRidG4tZGVmYXVsdC1ob3Zlci1jb2xvci1kYXJrO1xuICAgICAgLS1idG4tZGVmYXVsdC1ob3Zlci1ib3JkZXItY29sb3I6ICRidG4tZGVmYXVsdC1ob3Zlci1ib3JkZXItY29sb3ItZGFyaztcblxuICAgICAgLS1oaWdobGlnaHQtYmFja2dyb3VuZDogJGhpZ2hsaWdodC1iYWNrZ3JvdW5kLWRhcms7XG4gICAgICAtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kOiAkaGlnaGxpZ2h0LWZvcmVncm91bmQtZGFyaztcbiAgICAgIC0taGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kLWRhcms7XG4gICAgICAtLWhpZ2hsaWdodC1ndXR0ZXItZm9yZWdyb3VuZDogJGhpZ2hsaWdodC1ndXR0ZXItZm9yZWdyb3VuZC1kYXJrO1xuXG4gICAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG9wYWNpdHk6IC43NTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLyogbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLCBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsIGtiZCwgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsIHN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLS4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0uNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLCBpbnB1dCwgb3B0Z3JvdXAsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sIGlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLCBzZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbiwgW3R5cGU9J2J1dHRvbiddLCBbdHlwZT0ncmVzZXQnXSwgW3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsIFt0eXBlPSdidXR0b24nXTotbW96LWZvY3VzcmluZywgW3R5cGU9J3Jlc2V0J106LW1vei1mb2N1c3JpbmcsIFt0eXBlPSdzdWJtaXQnXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogLjM1ZW0gLjc1ZW0gLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPSdjaGVja2JveCddLCBbdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9J3NlYXJjaCddIHtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCI6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdGlvbi1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zZWxlY3Rpb24tY29sb3IpO1xufVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9keS1iZy1jb2xvcik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgJHRyYW5zaXRpb24tZWFzZTtcblxuICBpZiAoaGV4by1jb25maWcoJ2JvZHlfc2Nyb2xsYmFyLm92ZXJsYXknKSkge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBAc3VwcG9ydHMgKG92ZXJmbG93LXg6IGNsaXApIHtcbiAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgfVxuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnYm9keV9zY3JvbGxiYXIuc3RhYmxlJykpIHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGluZ3M7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW46IDMwcHggMCAxNXB4O1xufVxuXG5mb3IgJGhlYWRsaW5lIGluICgxIC4uIDYpIHtcbiAgaHskaGVhZGxpbmV9IHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZ3MtYmFzZSAtICRmb250LXNpemUtaGVhZGluZ3Mtc3RlcCAqICRoZWFkbGluZTtcbiAgfVxufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMjBweDtcbn1cblxuYSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGluay1kZWNvcmF0aW9uLWNvbG9yO1xuICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gIC8vIEZvciBhOm5vdCg6YW55LWxpbmspXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3b3JkLXdyYXAoKTtcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1saW5rLWhvdmVyLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tbGluay1ob3Zlci1jb2xvcik7XG4gIH1cbn1cblxuaWZyYW1lLCBpbWcsIHZpZGVvLCBlbWJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmhyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsICRncmV5LWxpZ2h0ZXIsICRncmV5LWxpZ2h0ZXIgNHB4LCB0cmFuc3BhcmVudCA0cHgsIHRyYW5zcGFyZW50IDhweCk7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbjogNDBweCAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkZ3JleS1saWdodGVyO1xuICBjb2xvcjogdmFyKC0tYmxvY2txdW90ZS1jb2xvcik7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxNXB4O1xuXG4gIGNpdGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJy0nO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICB9XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwibW9iaWxlLXNtYWxsZXN0KCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNDEzcHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbm1vYmlsZS1zbWFsbCgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2N3B4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5tb2JpbGUoKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxudGFibGV0LW1vYmlsZSgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG50YWJsZXQtZGVza3RvcCgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG50YWJsZXQoKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5kZXNrdG9wKCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbmRlc2t0b3AtbGFyZ2UoKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbmRlc2t0b3AtbGFyZ2VzdCgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxuc2lkZWJhcigpIHtcbiAgaWYgKCgkc2NoZW1lID09ICdNdXNlJykgb3IgKCRzY2hlbWUgPT0gJ01pc3QnKSkge1xuICAgIHtibG9ja31cbiAgfSBlbHNlIHtcbiAgICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICAgIHtibG9ja31cbiAgICB9XG4gIH1cbn1cblxucmFuZG9tLWNvbG9yKCRtaW4sICRtYXgpIHtcbiAgcmV0dXJuIGZsb29yKG1hdGgoMCwgJ3JhbmRvbScpICogKCRtYXggLSAkbWluICsgMSkgKyAkbWluKTtcbn1cblxud29yZC13cmFwKCkge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG5kaXNhYmxlLXVzZXItc2VsZWN0KCkge1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5zaWRlYmFyLWlubGluZS1saW5rcy1pdGVtKCkge1xuICBtYXJnaW46IDVweCAwIDA7XG5cbiAgYSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG5mbGV4LXdyYXAoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbmZsZXgtY29sdW1uKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxucG9zdC1jYXJkKCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnLWNvbG9yKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkcmVkO1xuICBtYXJnaW46ICRwb3N0LWNhcmQtbWFyZ2luO1xufVxuXG5mb250LWZhbWlseS1pY29ucygkaWNvbiA9ICcnKSB7XG4gIGlmICgkaWNvbikge1xuICAgIGNvbnRlbnQ6ICRpY29uO1xuICB9XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDYgRnJlZSc7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbm1haW4tY29udGFpbmVyKCkge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6ICRjb250ZW50LWRlc2t0b3A7XG5cbiAgK21vYmlsZSgpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICtkZXNrdG9wLWxhcmdlKCkge1xuICAgIHdpZHRoOiAkY29udGVudC1kZXNrdG9wLWxhcmdlO1xuICB9XG5cbiAgK2Rlc2t0b3AtbGFyZ2VzdCgpIHtcbiAgICB3aWR0aDogJGNvbnRlbnQtZGVza3RvcC1sYXJnZXN0O1xuICB9XG59XG5cbnNpZGViYXItdG9nZ2xlLXBvc2l0aW9uKCRyZXZlcnNlKSB7XG4gICRjb25kaXRpb24gPSAoJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCA9PSAncmlnaHQnKSA9PSAkcmV2ZXJzZTtcbiAgJGFsaWdubWVudCA9ICRjb25kaXRpb24gPyAnbGVmdCcgOiAncmlnaHQnO1xuICB7JGFsaWdubWVudH06ICRiMnQtcG9zaXRpb24tcmlnaHQ7XG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgIHskYWxpZ25tZW50fTogJGIydC1wb3NpdGlvbi1yaWdodC1tb2JpbGU7XG4gIH1cbn1cblxuc2lkZWJhci10b2dnbGUoKSB7XG4gIGJhY2tncm91bmQ6ICRiMnQtYmctY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogJGIydC1vcGFjaXR5O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6ICR6aW5kZXgtMztcbiAgc2lkZWJhci10b2dnbGUtcG9zaXRpb24oZmFsc2UpO1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6ICRiMnQtb3BhY2l0eS1ob3ZlcjtcbiAgfVxuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgIG9wYWNpdHk6ICRiMnQtb3BhY2l0eS1ob3ZlcjtcbiAgfVxufVxuXG5yb3VuZC1pY29uKCRkaWFtZXRlcikge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAkZGlhbWV0ZXI7XG4gIHdpZHRoOiAkZGlhbWV0ZXI7XG59XG5cbnRvZ2dsZS1hcnJvdygkcG9zaXRpb24pIHtcbiAgaWYgKCRwb3NpdGlvbiA9PSAncmlnaHQnKSB7XG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRvcDogMnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgdG9wOiAtMnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRvcDogMnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cbn1cblxudG9nZ2xlLWNsb3NlKCRwb3NpdGlvbikge1xuICA6bnRoLWNoaWxkKDIpIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgaWYgKCRwb3NpdGlvbiA9PSAncmlnaHQnKSB7XG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG5cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICB0b3A6IC02cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG5cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICB0b3A6IC02cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5zaXRlLW5hdi1oaWRlLWJ5LWRlZmF1bHQoKSB7XG4gIC0tc2Nyb2xsLWhlaWdodDogMDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBib2R5Om5vdCguc2l0ZS1uYXYtb24pICYgLmFuaW1hdGVkIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cblxuICBib2R5LnNpdGUtbmF2LW9uICYge1xuICAgIGhlaWdodDogdmFyKC0tc2Nyb2xsLWhlaWdodCk7XG4gICAgdmlzaWJpbGl0eTogdW5zZXQ7XG4gIH1cbn1cblxuYnV0dG9uKCRjb2xvcikge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMjtcbiAgcGFkZGluZzogMCAxNXB4O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cblxuZ2VtaW5pLWJsb2NrKCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb250ZW50LWJnLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtaW5uZXI7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWlubmVyO1xufVxuXG5nZW1pbmktYmxvY2stbm90LWZpcnN0KCkge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gIG1hcmdpbi10b3A6ICRzaWRlYmFyLW9mZnNldDtcblxuICArdGFibGV0KCkge1xuICAgIG1hcmdpbi10b3A6ICRjb250ZW50LXRhYmxldC1wYWRkaW5nO1xuICB9XG5cbiAgK21vYmlsZSgpIHtcbiAgICBtYXJnaW4tdG9wOiAkY29udGVudC1tb2JpbGUtcGFkZGluZztcbiAgfVxufVxuXG5tZW51LWl0ZW0tcm93KCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5iYWRnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuYmFkZ2UoKSB7XG4gIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICBib3JkZXItcmFkaXVzOiAkYmFkZ2UtYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICRiYWRnZS1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tbGVmdDogLjM1ZW07XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuICB0ZXh0LXNoYWRvdzogJGJhZGdlLXRleHQtc2hhZG93O1xufVxuIiwiLnRhYmxlLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBmb250LXNpemU6ICR0YWJsZS1mb250LXNpemU7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG50Ym9keSB0ciB7XG4gICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtcm93LW9kZC1iZy1jb2xvcik7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1yb3ctaG92ZXItYmctY29sb3IpO1xuICB9XG59XG5cbmNhcHRpb24sIHRoLCB0ZCB7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxudGgsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICR0YWJsZS1jZWxsLWJvcmRlci1ib3R0b20tY29sb3I7XG59XG5cbnRoIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbnRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xufVxuIiwiLmJ0biB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1kZWZhdWx0LWJnKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogJGJ0bi1kZWZhdWx0LXJhZGl1cztcbiAgY29sb3I6IHZhcigtLWJ0bi1kZWZhdWx0LWNvbG9yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1iZyk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcik7XG4gIH1cblxuICArIC5idG4ge1xuICAgIG1hcmdpbjogMCAwIDhweCA4cHg7XG4gIH1cblxuICAuZmEtZncge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6ICgxOGVtIC8gMTQpO1xuICB9XG59XG4iLCIudG9nZ2xlIHtcbiAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgLnRvZ2dsZS1saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogLjRzO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQsIG9wYWNpdHksIHRvcCwgdHJhbnNmb3JtLCB3aWR0aDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgIH1cblxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cbiAgfVxufVxuXG4udG9nZ2xlLnRvZ2dsZS1hcnJvdyB7XG4gIHRvZ2dsZS1hcnJvdygkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50KTtcbn1cblxuLnRvZ2dsZS50b2dnbGUtY2xvc2Uge1xuICB0b2dnbGUtY2xvc2UoJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCk7XG59XG4iLCJwcmUgY29kZS5obGpzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHBhZGRpbmc6IDFlbVxufVxuY29kZS5obGpzIHtcbiAgcGFkZGluZzogM3B4IDVweFxufVxuLyohXG4gIFRoZW1lOiBEZWZhdWx0XG4gIERlc2NyaXB0aW9uOiBPcmlnaW5hbCBoaWdobGlnaHQuanMgc3R5bGVcbiAgQXV0aG9yOiAoYykgSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG4gIE1haW50YWluZXI6IEBoaWdobGlnaHRqcy9jb3JlLXRlYW1cbiAgV2Vic2l0ZTogaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcvXG4gIExpY2Vuc2U6IHNlZSBwcm9qZWN0IExJQ0VOU0VcbiAgVG91Y2hlZDogMjAyMVxuKi9cbi8qXG5UaGlzIGlzIGxlZnQgb24gcHVycG9zZSBtYWtpbmcgZGVmYXVsdC5jc3MgdGhlIHNpbmdsZSBmaWxlIHRoYXQgY2FuIGJlIGxpZnRlZFxuYXMtaXMgZnJvbSB0aGUgcmVwb3NpdG9yeSBkaXJlY3RseSB3aXRob3V0IHRoZSBuZWVkIGZvciBhIGJ1aWxkIHN0ZXBcblxuVHlwaWNhbGx5IHRoaXMgXCJyZXF1aXJlZFwiIGJhc2VsaW5lIENTUyBpcyBhZGRlZCBieSBgbWFrZXN0dWZmLmpzYCBkdXJpbmcgYnVpbGQuXG4qL1xucHJlIGNvZGUuaGxqcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBwYWRkaW5nOiAxZW1cbn1cbmNvZGUuaGxqcyB7XG4gIHBhZGRpbmc6IDNweCA1cHhcbn1cbi8qIGVuZCBiYXNlbGluZSBDU1MgKi9cbi5obGpzIHtcbiAgYmFja2dyb3VuZDogI0YzRjNGMztcbiAgY29sb3I6ICM0NDRcbn1cbi8qIEJhc2UgY29sb3I6IHNhdHVyYXRpb24gMDsgKi9cbi5obGpzLXN1YnN0IHtcbiAgLyogZGVmYXVsdCAqL1xuICBcbn1cbi8qIHB1cnBvc2VseSBpZ25vcmVkICovXG4uaGxqcy1mb3JtdWxhLFxuLmhsanMtYXR0cixcbi5obGpzLXByb3BlcnR5LFxuLmhsanMtcGFyYW1zIHtcbiAgXG59XG4uaGxqcy1jb21tZW50IHtcbiAgY29sb3I6ICM2OTcwNzBcbn1cbi5obGpzLXRhZyxcbi5obGpzLXB1bmN0dWF0aW9uIHtcbiAgY29sb3I6ICM0NDRhXG59XG4uaGxqcy10YWcgLmhsanMtbmFtZSxcbi5obGpzLXRhZyAuaGxqcy1hdHRyIHtcbiAgY29sb3I6ICM0NDRcbn1cbi5obGpzLWtleXdvcmQsXG4uaGxqcy1hdHRyaWJ1dGUsXG4uaGxqcy1zZWxlY3Rvci10YWcsXG4uaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsXG4uaGxqcy1kb2N0YWcsXG4uaGxqcy1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRcbn1cbi8qIFVzZXIgY29sb3I6IGh1ZTogMCAqL1xuLmhsanMtdHlwZSxcbi5obGpzLXN0cmluZyxcbi5obGpzLW51bWJlcixcbi5obGpzLXNlbGVjdG9yLWlkLFxuLmhsanMtc2VsZWN0b3ItY2xhc3MsXG4uaGxqcy1xdW90ZSxcbi5obGpzLXRlbXBsYXRlLXRhZyxcbi5obGpzLWRlbGV0aW9uIHtcbiAgY29sb3I6ICM4ODAwMDBcbn1cbi5obGpzLXRpdGxlLFxuLmhsanMtc2VjdGlvbiB7XG4gIGNvbG9yOiAjODgwMDAwO1xuICBmb250LXdlaWdodDogYm9sZFxufVxuLmhsanMtcmVnZXhwLFxuLmhsanMtc3ltYm9sLFxuLmhsanMtdmFyaWFibGUsXG4uaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSxcbi5obGpzLWxpbmssXG4uaGxqcy1zZWxlY3Rvci1hdHRyLFxuLmhsanMtb3BlcmF0b3IsXG4uaGxqcy1zZWxlY3Rvci1wc2V1ZG8ge1xuICBjb2xvcjogI2FiNTY1NlxufVxuLyogTGFuZ3VhZ2UgY29sb3I6IGh1ZTogOTA7ICovXG4uaGxqcy1saXRlcmFsIHtcbiAgY29sb3I6ICM2OTVcbn1cbi5obGpzLWJ1aWx0X2luLFxuLmhsanMtYnVsbGV0LFxuLmhsanMtY29kZSxcbi5obGpzLWFkZGl0aW9uIHtcbiAgY29sb3I6ICMzOTczMDBcbn1cbi8qIE1ldGEgY29sb3I6IGh1ZTogMjAwICovXG4uaGxqcy1tZXRhIHtcbiAgY29sb3I6ICMxZjcxOTlcbn1cbi5obGpzLW1ldGEgLmhsanMtc3RyaW5nIHtcbiAgY29sb3I6ICMzOGFcbn1cbi8qIE1pc2MgZWZmZWN0cyAqL1xuLmhsanMtZW1waGFzaXMge1xuICBmb250LXN0eWxlOiBpdGFsaWNcbn1cbi5obGpzLXN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkXG59IiwiLy8gVXNlIGBAcmVxdWlyZWAgdG8gZml4IGlzc3VlICM2N1xuQHJlcXVpcmUgaGV4by1jb25maWcoJ2hpZ2hsaWdodC5saWdodC5maWxlJykgaWYgKGhleG8tY29uZmlnKCdoaWdobGlnaHQuZW5hYmxlJykgJiYgaGV4by1jb25maWcoJ2hpZ2hsaWdodC5saWdodC5maWxlJykpO1xuaWYgKGhleG8tY29uZmlnKCdwcmlzbS5lbmFibGUnKSkge1xuICBAcmVxdWlyZSBoZXhvLWNvbmZpZygncHJpc20ubGlnaHQnKSBpZiAoaGV4by1jb25maWcoJ3ByaXNtLmxpZ2h0JykpO1xuICBAcmVxdWlyZSBoZXhvLWNvbmZpZygncHJpc20ubnVtYmVyJykgaWYgKGhleG8tY29uZmlnKCdwcmlzbS5udW1iZXInKSk7XG59XG5cbmlmIChoZXhvLWNvbmZpZygnZGFya21vZGUnKSkge1xuICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgQHJlcXVpcmUgaGV4by1jb25maWcoJ2hpZ2hsaWdodC5kYXJrLmZpbGUnKSBpZiAoaGV4by1jb25maWcoJ2hpZ2hsaWdodC5lbmFibGUnKSAmJiBoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmRhcmsuZmlsZScpKTtcbiAgICBAcmVxdWlyZSBoZXhvLWNvbmZpZygncHJpc20uZGFyaycpIGlmIChoZXhvLWNvbmZpZygncHJpc20uZW5hYmxlJykgJiYgaGV4by1jb25maWcoJ3ByaXNtLmRhcmsnKSk7XG4gIH1cbn1cblxuQHJlcXVpcmUgJ2NvcHktY29kZScgaWYgKGhleG8tY29uZmlnKCdjb2RlYmxvY2suY29weV9idXR0b24uZW5hYmxlJykpO1xuQHJlcXVpcmUgJ2ZvbGQnIGlmIChoZXhvLWNvbmZpZygnY29kZWJsb2NrLmZvbGQuZW5hYmxlJykpO1xuXG4vLyBQbGFjZWhvbGRlcjogJGNvZGUtaW5saW5lICRjb2RlLWJsb2NrXG4kY29kZS1pbmxpbmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG4gIGNvbG9yOiB2YXIoLS1oaWdobGlnaHQtZm9yZWdyb3VuZCk7XG59XG5cbiRjb2RlLWJsb2NrIHtcbiAgQGV4dGVuZCAkY29kZS1pbmxpbmU7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29kZS1ibG9jaztcbiAgbWFyZ2luOiAwIGF1dG8gMjBweDtcbn1cblxuJGZpZ2NhcHRpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1oaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQpO1xuICBjb2xvcjogdmFyKC0taGlnaGxpZ2h0LWZvcmVncm91bmQpO1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIGZvbnQtc2l6ZTogJHRhYmxlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgcGFkZGluZzogLjVlbTtcblxuICBhIHtcbiAgICBjb2xvcjogdmFyKC0taGlnaGxpZ2h0LWZvcmVncm91bmQpO1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0taGlnaGxpZ2h0LWZvcmVncm91bmQpO1xuICAgIH1cbiAgfVxufVxuXG5wcmUsIGNvZGUge1xuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG59XG5cbmNvZGUge1xuICBAZXh0ZW5kICRjb2RlLWlubGluZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXNpemU6ICR0YWJsZS1mb250LXNpemU7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIHdvcmQtd3JhcCgpO1xufVxuXG5rYmQge1xuICBAZXh0ZW5kICRjb2RlLWlubGluZTtcbiAgYm9yZGVyOiAycHggc29saWQgJGdyZXktbGlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IC4yZW07XG4gIGJveC1zaGFkb3c6IC4xZW0gLjFlbSAuMmVtIHJnYmEoMCwgMCwgMCwgLjEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgcGFkZGluZzogLjFlbSAuM2VtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBgaGlnaGxpZ2h0LmxpbmVfbnVtYmVyOiBmYWxzZWAgYW5kIGBoaWdobGlnaHQud3JhcDogZmFsc2VgXG4vLyBpbiBIZXhvIGNvbmZpZyBnZW5lcmF0ZXMgY29kZS5oaWdobGlnaHQgZWxlbWVudHNcbmZpZ3VyZS5oaWdobGlnaHQge1xuICBAZXh0ZW5kICRjb2RlLWJsb2NrO1xuICAvLyBSZWR1Y2UgRE9NIHJlZmxvdyB3aXRoIHdyYXBUYWJsZVdpdGhCb3hcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwcmUge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBAZXh0ZW5kICRmaWdjYXB0aW9uO1xuICB9XG5cbiAgLmd1dHRlciB7XG4gICAgZGlzYWJsZS11c2VyLXNlbGVjdCgpO1xuXG4gICAgcHJlIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZCk7XG4gICAgICBjb2xvcjogdmFyKC0taGlnaGxpZ2h0LWd1dHRlci1mb3JlZ3JvdW5kKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuY29kZSBwcmUge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmV4dC10aGVtZS9oZXhvLXRoZW1lLW5leHQvZGlzY3Vzc2lvbnMvNDEwXG4gIC5tYXJrZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjMpO1xuICB9XG59XG5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGV4b2pzL2hleG8tdXRpbC9wdWxsLzIyOVxucHJlIC5jYXB0aW9uLCBwcmUgZmlnY2FwdGlvbiB7XG4gIEBleHRlbmQgJGZpZ2NhcHRpb247XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5naXN0IHRhYmxlIHtcbiAgd2lkdGg6IGF1dG87XG5cbiAgdGQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG5wcmUge1xuICBAZXh0ZW5kICRjb2RlLWJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMTBweDtcblxuICBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbiIsIi5hcmNoaXZlIC5jb2xsZWN0aW9uLXRpdGxlIHtcbiAgZGlzcGxheTogbm9uZSA7XG59XG5mcmFtZSwgaW1nLCB2aWRlbywgZW1iZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xuICAgIG1hcmdpbi1yaWdodDogaW5pdGlhbDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwuMyk7XG59XG5cbi5zaXRlLWF1dGhvci1pbWFnZXtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cbiIsIi8vIEJsb2NrcXVvdGUgd2l0aCBhbGwgY2hpbGRyZW4gY2VudGVyZWQuXG4uYmxvY2txdW90ZS1jZW50ZXIge1xuICBib3JkZXItbGVmdDogMDtcbiAgbWFyZ2luOiA0MHB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgb3BhY2l0eTogLjY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktbGlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0b3A6IC0yMHB4O1xuICAgIGZvbnQtZmFtaWx5LWljb25zKCdcXGYxMGQnKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktbGlnaHQ7XG4gICAgYm90dG9tOiAtMjBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LWZhbWlseS1pY29ucygnXFxmMTBlJyk7XG4gIH1cblxuICBwLCBkaXYge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmdyb3VwLXBpY3R1cmUge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gIC5ncm91cC1waWN0dXJlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDNweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIH1cblxuICAuZ3JvdXAtcGljdHVyZS1jb2x1bW4ge1xuICAgIGZsZXg6IDE7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5wb3N0LWJvZHkgLmxhYmVsIHtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBwYWRkaW5nOiAwIDJweDtcblxuICBmb3IgJHR5cGUgaW4gJG5vdGUtdHlwZXMge1xuICAgICYueyR0eXBlfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGFiZWxbJHR5cGVdO1xuICAgIH1cbiAgfVxufVxuIiwiLnBvc3QtYm9keSAubGluay1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgLy8gaHR0cHM6Ly9jYW5pdXNlLmNvbS9tZG4tY3NzX3Byb3BlcnRpZXNfZ2FwX2dyaWRfY29udGV4dFxuICBncmlkLWdhcDogMS41cmVtO1xuICBnYXA6IDEuNXJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuXG4gICttb2JpbGUoKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAubGluay1ncmlkLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyOiBzb2xpZCAkZ3JleS1saWdodGVyO1xuICAgIGJveC1zaGFkb3c6IDFyZW0gMXJlbSAuNXJlbSByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICBtaW4taGVpZ2h0OiA1cmVtO1xuICAgIC8vIEZpeCBpc3N1ZSAjMzBcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBhbmltYXRpb246IG5leHQtc2hha2UgLjVzO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZy1jb2xvcik7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogLjVyZW0gLjVyZW0gLjI1cmVtIHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLjJyZW0sIC4ycmVtKTtcbiAgICB9XG5cbiAgICAubGluay1ncmlkLWltYWdlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWxpZ2h0ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDVyZW07XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMXJlbSAwIDZyZW07XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgZm9udC1zaXplOiAuOGVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xuICAgICAgICBvcGFjaXR5OiAuNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBuZXh0LXNoYWtlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFwdCwgMXB0KSByb3RhdGUoMGRlZyk7XG4gIH1cblxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHQsIC0ycHQpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHQsIDBwdCkgcm90YXRlKDFkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHQsIDJwdCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHQsIC0xcHQpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFwdCwgMnB0KSByb3RhdGUoLTFkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtM3B0LCAxcHQpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoM3B0LCAxcHQpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHQsIC0xcHQpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB0LCAycHQpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFwdCwgLTJwdCkgcm90YXRlKC0xZGVnKTtcbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdub3RlLnN0eWxlJykgIT0gJ2Rpc2FibGVkJykge1xuICAucG9zdC1ib2R5IC5ub3RlIHtcbiAgICAkbm90ZS1pY29ucyA9IGhleG8tY29uZmlnKCdub3RlLmljb25zJyk7XG4gICAgJG5vdGUtc3R5bGUgPSBoZXhvLWNvbmZpZygnbm90ZS5zdHlsZScpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogJG5vdGUtYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpZiAoJG5vdGUtc3R5bGUgPT0gJ3NpbXBsZScpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xuICAgIH1cblxuICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnbW9kZXJuJykge1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlc21va2U7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBpZiAoJG5vdGUtc3R5bGUgPT0gJ2ZsYXQnKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRnYWluc2Jvcm8sIDY1JSk7XG4gICAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgfVxuXG4gICAgc3VtbWFyeSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICBwIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBpZiAoJG5vdGUtaWNvbnMpIHtcbiAgICAgICY6bm90KC5uby1pY29uKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi41ZW07XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgIGxlZnQ6IC4zZW07XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAxZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICR0eXBlIGluICRub3RlLXR5cGVzIHtcbiAgICAgICYueyR0eXBlfSB7XG4gICAgICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnZmxhdCcpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbm90ZS1iZ1skdHlwZV07XG4gICAgICAgICAgaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IG1peCgkbm90ZS1iZ1skdHlwZV0sICRib2R5LWJnLWNvbG9yLWRhcmssIDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRub3RlLXN0eWxlID09ICdtb2Rlcm4nKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJG5vdGUtbW9kZXJuLWJnWyR0eXBlXTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRub3RlLW1vZGVybi1ib3JkZXJbJHR5cGVdO1xuICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dFskdHlwZV07XG5cbiAgICAgICAgICBhOm5vdCguYnRuKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dFskdHlwZV07XG4gICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLXRleHRbJHR5cGVdO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyWyR0eXBlXTtcbiAgICAgICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi1ob3ZlclskdHlwZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRub3RlLW1vZGVybi1iZy1kYXJrWyR0eXBlXTtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbm90ZS1tb2Rlcm4tYm9yZGVyLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLXRleHQtZGFya1skdHlwZV07XG5cbiAgICAgICAgICAgICAgYTpub3QoLmJ0bikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRub3RlLW1vZGVybi10ZXh0LWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dC1kYXJrWyR0eXBlXTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi1ob3Zlci1kYXJrWyR0eXBlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJG5vdGUtc3R5bGUgIT0gJ21vZGVybicpIHtcbiAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJG5vdGUtYm9yZGVyWyR0eXBlXTtcblxuICAgICAgICAgIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgICAgICBjb2xvcjogJG5vdGUtdGV4dFskdHlwZV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRub3RlLWljb25zKSB7XG4gICAgICAgICAgJjpub3QoLm5vLWljb24pOjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHktaWNvbnMoJG5vdGUtaWNvblskdHlwZV0pO1xuXG4gICAgICAgICAgICBpZiAoJG5vdGUtc3R5bGUgIT0gJ21vZGVybicpIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRub3RlLXRleHRbJHR5cGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnBvc3QtYm9keSAudGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wb3N0LWJvZHkgLnRhYnMsIC50YWJzLWNvbW1lbnQge1xuICBwYWRkaW5nLXRvcDogMTBweDtcblxuICB1bC5uYXYtdGFicyB7XG4gICAgYmFja2dyb3VuZDogKCgkc2NoZW1lID09ICdNdXNlJykgb3IgKCRzY2hlbWUgPT0gJ01pc3QnKSkgPyB2YXIoLS1ib2R5LWJnLWNvbG9yKSA6IHZhcigtLWNvbnRlbnQtYmctY29sb3IpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICAvLyBGaXggaXNzdWUgIzM5OFxuICAgIHotaW5kZXg6ICR6aW5kZXgtMDtcblxuICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICBsaS50YWIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWxpZ2h0ZXI7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAkdGJyICR0YnIgMCAwO1xuICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICR0YnI7XG4gICAgICB9XG5cbiAgICAgIGlmIChoZXhvLWNvbmZpZygndGFicy50cmFuc2l0aW9uLnRhYnMnKSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgcGFkZGluZzogLjI1ZW0gLjc1ZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICAgICAgd2lkdGg6ICgxOGVtIC8gMTQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhleG8tY29uZmlnKCd0YWJzLnRyYW5zaXRpb24ubGFiZWxzJykpIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJG9yYW5nZTtcblxuICAgICAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFiLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICR0YnIgJHRicjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkdGJyO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAudGFiLXBhbmUge1xuICAgICAgcGFkZGluZzogMjBweCAyMHB4IDA7XG5cbiAgICAgICY6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRwYWdlLW51bWJlci1iYXNpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAtMXB4IDEwcHggMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuXG4gICttb2JpbGUoKSB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxufVxuXG4kcGFnZS1udW1iZXItY3VycmVudCB7XG4gIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWFjdGl2ZS1iZztcbiAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyO1xuICBjb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xufVxuXG4ucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcGFnaW5hdGlvbi1ib3JkZXI7XG4gIG1hcmdpbjogMTIwcHggMCAwO1xuICB0ZXh0LWFsaWduOiAkc2NoZW1lLXRleHQtYWxpZ247XG5cbiAgLnByZXYsIC5uZXh0LCAucGFnZS1udW1iZXIge1xuICAgIEBleHRlbmQgJHBhZ2UtbnVtYmVyLWJhc2ljO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwYWdpbmF0aW9uLWxpbmstYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkcGFnaW5hdGlvbi1saW5rLWhvdmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICArbW9iaWxlKCkge1xuICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAucHJldiwgLm5leHQsIC5wYWdlLW51bWJlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHBhZ2luYXRpb24tbGluay1ib3JkZXI7XG4gICAgICBib3JkZXItdG9wOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHBhZ2luYXRpb24tbGluay1ob3Zlci1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNwYWNlIHtcbiAgICBAZXh0ZW5kICRwYWdlLW51bWJlci1iYXNpYztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5wYWdlLW51bWJlci5jdXJyZW50IHtcbiAgICBAZXh0ZW5kICRwYWdlLW51bWJlci1jdXJyZW50O1xuICB9XG59XG4iLCIuY29tbWVudHMge1xuICBtYXJnaW4tdG9wOiA2MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29tbWVudC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMWVtIDA7XG5cbiAgLmNvbW1lbnQtYnV0dG9uIHtcbiAgICBtYXJnaW46IC4xZW0gLjJlbTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWJnKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi5jb21tZW50LXBvc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnRhYnMtY29tbWVudCB7XG4gIG1hcmdpbi10b3A6IDRlbTtcbiAgcGFkZGluZy10b3A6IDA7XG5cbiAgLmNvbW1lbnRzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG4iLCIvLyBIZWFkZXIgU2VjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5oZWFkYmFuZCB7XG4gIGJhY2tncm91bmQ6ICRoZWFkYmFuZC1iZztcbiAgaGVpZ2h0OiAkaGVhZGJhbmQtaGVpZ2h0O1xuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNpdGUtYnJhbmQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cblxuLnVzZS1tb3Rpb24ge1xuICAuY29sdW1uLCAuc2l0ZS1icmFuZC1jb250YWluZXIgLnRvZ2dsZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5AaW1wb3J0ICdzaXRlLW1ldGEnO1xuQGltcG9ydCAnc2l0ZS1uYXYnO1xuQGltcG9ydCAnbWVudSc7XG5cbkBpbXBvcnQgJ2Jvb2ttYXJrJztcbkBpbXBvcnQgJ2dpdGh1Yi1iYW5uZXInO1xuIiwiLnNpdGUtbWV0YSB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICttb2JpbGUoKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5jdXN0b20tbG9nby1pbWFnZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYnJhbmQge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBjb2xvcjogdmFyKC0tYnJhbmQtY29sb3IpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRicmFuZC1wYWRkaW5nO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1icmFuZC1ob3Zlci1jb2xvcik7XG4gIH1cbn1cblxuLnNpdGUtdGl0bGUge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWxvZ287XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10aXRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2l0ZS1zdWJ0aXRsZSB7XG4gIGNvbG9yOiAkc3VidGl0bGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zdWJ0aXRsZTtcbiAgbWFyZ2luOiAkc2l0ZS1zdWJ0aXRsZS1tYXJnaW47XG59XG5cbi51c2UtbW90aW9uIHtcbiAgLnNpdGUtdGl0bGUsIC5zaXRlLXN1YnRpdGxlLCAuY3VzdG9tLWxvZ28taW1hZ2Uge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEwcHg7XG4gIH1cbn1cbiIsIi5zaXRlLW5hdi10b2dnbGUsIC5zaXRlLW5hdi1yaWdodCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBmbGV4LWNvbHVtbigpO1xuICB9XG5cbiAgLnRvZ2dsZSB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgd2lkdGg6IDIycHg7XG5cbiAgICAudG9nZ2xlLWxpbmUge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLW5hdiB7XG4gICttb2JpbGUoKSB7XG4gICAgc2l0ZS1uYXYtaGlkZS1ieS1kZWZhdWx0KCk7XG4gIH1cbn1cbiIsIi8vIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubWVudSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMWVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDEwcHg7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgJi5tZW51LWl0ZW0tc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICY6aG92ZXIsICYubWVudS1pdGVtLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZW51LWl0ZW0tYmctY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIGlbY2xhc3NePSdmYSddIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuXG4gIC5iYWRnZSB7XG4gICAgYmFkZ2UoKTtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLm1lbnVfaXRlbScpKSB7XG4gIC51c2UtbW90aW9uIC5tZW51LWl0ZW0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiK3NpZGViYXIoKSB7XG4gIGlmICgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50ID09ICdyaWdodCcpIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICByaWdodDogMCAtICRzaWRlYmFyLXdpZHRoLWV4cGFuZGVkO1xuXG4gICAgICAuc2lkZWJhci1hY3RpdmUgJiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICBsZWZ0OiAwIC0gJHNpZGViYXItd2lkdGgtZXhwYW5kZWQ7XG5cbiAgICAgIC5zaWRlYmFyLWFjdGl2ZSAmIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgYm90dG9tOiAwO1xuICAgIGlmIChub3QgaGV4by1jb25maWcoJ2JhY2sydG9wLnNpZGViYXInKSkge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggNnB4IGJsYWNrO1xuICAgIH1cbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XG4gICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoLWV4cGFuZGVkO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtMjtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrLWxpZ2h0O1xuICAgICAgY29sb3I6ICRncmV5LWRhcms7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZ2FpbnNib3JvO1xuICAgICAgICBjb2xvcjogJGdhaW5zYm9ybztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGlua3Mtb2YtYXV0aG9yIHtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmxhY2stbGlnaHQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgaWYgKGhleG8tY29uZmlnKCdzb2NpYWxfaWNvbnMudHJhbnNpdGlvbicpKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IocmFuZG9tLWNvbG9yKDAsIDI1NSkgLSA1MCUsIHJhbmRvbS1jb2xvcigwLCAyNTUpIC0gNTAlLCByYW5kb20tY29sb3IoMCwgMjU1KSAtIDUwJSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgcm91bmQtaWNvbig0cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5saW5rcy1vZi1ibG9ncm9sbC1pdGVtIHtcbiAgICBpZiAoaGV4by1jb25maWcoJ2xpbmtzX3NldHRpbmdzLmxheW91dCcpID09ICdpbmxpbmUnKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuXG4gICAgYSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLnBvcHVsYXItcG9zdHMgLnBvcHVsYXItcG9zdHMtaXRlbSAucG9wdWxhci1wb3N0cy1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItZGltbWVyIHtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAuNHMsIG9wYWNpdHkgLjRzO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAkemluZGV4LTE7XG5cbiAgICAuc2lkZWJhci1hY3RpdmUgJiB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG59XG5cbi5zaWRlYmFyLWlubmVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIHBhZGRpbmc6ICRzaWRlYmFyLXBhZGRpbmcgMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LWNvbHVtbigpO1xufVxuXG4uY2MtbGljZW5zZSB7XG4gIC5jYy1vcGFjaXR5IHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IC43O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuOTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5AaW1wb3J0ICdzaWRlYmFyLWF1dGhvcic7XG5AaW1wb3J0ICdzaWRlYmFyLWF1dGhvci1saW5rcyc7XG5AaW1wb3J0ICdzaWRlYmFyLWJ1dHRvbic7XG5AaW1wb3J0ICdzaWRlYmFyLWJsb2dyb2xsJztcbkBpbXBvcnQgJ3NpZGViYXItbmF2JztcbkBpbXBvcnQgJ3NpZGViYXItdG9nZ2xlJztcbkBpbXBvcnQgJ3NpZGViYXItdG9jJztcbkBpbXBvcnQgJ3NpdGUtc3RhdGUnO1xuQGltcG9ydCAncmVsYXRlZC1wb3N0cyc7XG4iLCIuc2l0ZS1hdXRob3ItaW1hZ2Uge1xuICBib3JkZXI6ICRzaXRlLWF1dGhvci1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgJHNpdGUtYXV0aG9yLWltYWdlLWJvcmRlci1jb2xvcjtcbiAgbWF4LXdpZHRoOiAkc2l0ZS1hdXRob3ItaW1hZ2Utd2lkdGg7XG4gIHBhZGRpbmc6IDJweDtcblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3VuZGVkJykpIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3RhdGVkJykpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1hdXRob3ItbmFtZSB7XG4gIGNvbG9yOiAkc2l0ZS1hdXRob3ItbmFtZS1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzaXRlLWF1dGhvci1uYW1lLXdlaWdodDtcbiAgbWFyZ2luOiAkc2l0ZS1hdXRob3ItbmFtZS1tYXJnaW47XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICRzaXRlLWRlc2NyaXB0aW9uLWNvbG9yO1xuICBmb250LXNpemU6ICRzaXRlLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLXRvcDogJHNpdGUtZGVzY3JpcHRpb24tbWFyZ2luLXRvcDtcbn1cbiIsIi5saW5rcy1vZi1hdXRob3Ige1xuICBhIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgfVxuXG4gIGlmIChub3QgaGV4by1jb25maWcoJ3NvY2lhbF9pY29ucy5pY29uc19vbmx5JykpIHtcbiAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyIC5zaWRlYmFyLWJ1dHRvbiB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICBidXR0b24ge1xuICAgIGJ1dHRvbigkb3JhbmdlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkb3JhbmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgIGlbY2xhc3NePSdmYSddIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmxpbmtzLW9mLWJsb2dyb2xsIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG59XG5cbi5saW5rcy1vZi1ibG9ncm9sbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmxpbmtzLW9mLWJsb2dyb2xsLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBTaWRlYmFyIE5hdmlnYXRpb25cbi5zaWRlYmFyLW5hdiB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC5zaWRlYmFyLW5hdi1hY3RpdmUgJiB7XG4gICAgaGVpZ2h0OiBcImNhbGMoJXNlbSArIDFweClcIiAlICRsaW5lLWhlaWdodC1iYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiB1bnNldDtcbiAgICB2aXNpYmlsaXR5OiB1bnNldDtcbiAgfVxuXG4gIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRzaWRlYmFyLW5hdi1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWJvdHRvbS1jb2xvciwgY29sb3I7XG5cbiAgICAmLnNpZGViYXItbmF2LW92ZXJ2aWV3IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLnNpZGViYXItdG9jLWFjdGl2ZSAuc2lkZWJhci1uYXYtdG9jLCAuc2lkZWJhci1vdmVydmlldy1hY3RpdmUgLnNpZGViYXItbmF2LW92ZXJ2aWV3IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICB9XG59XG5cbi8vIEZvciBUT0MvT3ZlcnZpZXcgc2Nyb2xsaW5nXG4uc2lkZWJhci1wYW5lbC1jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZy10b3A6IDA7XG4gIHRyYW5zaXRpb246IHBhZGRpbmctdG9wICR0cmFuc2l0aW9uLWVhc2U7XG5cbiAgLnNpZGViYXItbmF2LWFjdGl2ZSAmIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgfVxufVxuXG4uc2lkZWJhci1wYW5lbCB7XG4gIGFuaW1hdGlvbjogZGVhY3RpdmF0ZS1zaWRlYmFyLXBhbmVsICR0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICBncmlkLWFyZWE6IDEgLyAxO1xuICBoZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm0sIHZpc2liaWxpdHk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBBcHBseSB0cmFuc2Zvcm0gdG8gYm90aCBwYW5lbHMgd2hlbiBzaWRlYmFyIG5hdiBpcyBhY3RpdmUsXG4gIC8vIHRvIHRoZSBUT0MgcGFuZWwgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBPdmVydmlldyBhbmQgVE9DIHJlZ2FyZGxlc3Mgb2ZcbiAgLy8gd2hldGhlciB0aGUgc2lkZWJhciBuYXYgaXMgYWN0aXZlXG4gIC5zaWRlYmFyLW5hdi1hY3RpdmUgJixcbiAgLnNpZGViYXItb3ZlcnZpZXctYWN0aXZlICYucG9zdC10b2Mtd3JhcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuXG4gIC8vIERlbGF5IFRPQyB0cmFuc2Zvcm0gdHJhbnNpdGlvbiB3aGVuIHN3aXRjaGluZyBmcm9tIFRPQyB0byBPdmVydmlldyBhbmRcbiAgLy8gZGVhY3RpdmF0aW5nIHRoZSBzaWRlYmFyIG5hdiBhdCB0aGUgc2FtZSB0aW1lLCB0byBwcmV2ZW50IHRoZSBUT0MgcGFuZWxcbiAgLy8gZnJvbSBtb3ZpbmcgdG9vIGZhc3RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25leHQtdGhlbWUvaGV4by10aGVtZS1uZXh0L3B1bGwvMzIzI2lzc3VlY29tbWVudC0xNDIwNzgwOTY1XG4gIC5zaWRlYmFyLW92ZXJ2aWV3LWFjdGl2ZTpub3QoLnNpZGViYXItbmF2LWFjdGl2ZSkgJi5wb3N0LXRvYy13cmFwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgJHRyYW5zaXRpb24tZHVyYXRpb24sIDBzO1xuICB9XG5cbiAgLnNpZGViYXItb3ZlcnZpZXctYWN0aXZlICYuc2l0ZS1vdmVydmlldy13cmFwLFxuICAuc2lkZWJhci10b2MtYWN0aXZlICYucG9zdC10b2Mtd3JhcCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGFjdGl2YXRlLXNpZGViYXItcGFuZWw7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAvLyBUaGUgdmlzaWJpbGl0eSBkZWxheSBpcyBpbnRlbnRpb25hbGx5IHNldCB0byAwcyB0byBhY2NvbW1vZGF0ZVxuICAgIC8vIHRoZSB2aXNpYmlsaXR5IGNoYW5nZSBvbiBpbml0aWFsIHBhZ2UgbG9hZC5cbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRyYW5zaXRpb24tZHVyYXRpb24sIDBzO1xuICAgIHZpc2liaWxpdHk6IHVuc2V0O1xuICB9XG5cbiAgJi5zaXRlLW92ZXJ2aWV3LXdyYXAge1xuICAgIC8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4gICAgLy8gZWxlbWVudHMgb2YgLnNpdGUtb3ZlcnZpZXctd3JhcCB0aHJvdWdoIHRoZSBgb3JkZXJgIENTUyBwcm9wZXJ0eVxuICAgIGZsZXgtY29sdW1uKCk7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLy8gVE9ETzogT3B0aW1pemUgdGhlIGR1cGxpY2F0ZSB3aXRoIGZsZXgtY29sdW1uKClcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGRlYWN0aXZhdGUtc2lkZWJhci1wYW5lbCB7XG4gIGZyb20ge1xuICAgIGhlaWdodDogdmFyKC0taW5hY3RpdmUtcGFuZWwtaGVpZ2h0LCAwKTtcbiAgfVxuICB0byB7XG4gICAgaGVpZ2h0OiB2YXIoLS1hY3RpdmUtcGFuZWwtaGVpZ2h0LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFjdGl2YXRlLXNpZGViYXItcGFuZWwge1xuICBmcm9tIHtcbiAgICBoZWlnaHQ6IHZhcigtLWluYWN0aXZlLXBhbmVsLWhlaWdodCwgYXV0byk7XG4gIH1cbiAgdG8ge1xuICAgIGhlaWdodDogdmFyKC0tYWN0aXZlLXBhbmVsLWhlaWdodCwgYXV0byk7XG4gIH1cbn1cbiIsIi5zaWRlYmFyLXRvZ2dsZSB7XG4gIGJvdHRvbTogJGIydC1wb3NpdGlvbi1ib3R0b20tb24gKyAkc2lkZWJhci10b2dnbGUtc2l6ZSArIDVweDtcbiAgaGVpZ2h0OiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgcGFkZGluZzogJHNpZGViYXItdG9nZ2xlLXBhZGRpbmc7XG4gIHdpZHRoOiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgc2lkZWJhci10b2dnbGUoKTtcbn1cblxuLnNpZGViYXItdG9nZ2xlOmhvdmVyIC50b2dnbGUtbGluZSB7XG4gIGJhY2tncm91bmQ6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbn1cblxuQG1lZGlhIChhbnktaG92ZXI6IGhvdmVyKSB7XG4gIGJvZHk6bm90KC5zaWRlYmFyLWFjdGl2ZSkgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgICB0b2dnbGUtYXJyb3coJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCk7XG4gIH1cbn1cblxuLnNpZGViYXItYWN0aXZlIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIHRvZ2dsZS1jbG9zZSgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50KTtcbn1cbiIsImlmIChoZXhvLWNvbmZpZygndG9jLmVuYWJsZScpKSB7XG4gIC5wb3N0LXRvYyB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuXG4gICAgb2wge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMnB4IDAgMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICB9XG5cbiAgICAgID4gb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LWl0ZW0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgaWYgKG5vdCBoZXhvLWNvbmZpZygndG9jLndyYXAnKSkge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYge1xuICAgICAgaWYgKG5vdCBoZXhvLWNvbmZpZygndG9jLmV4cGFuZF9hbGwnKSkge1xuICAgICAgICAubmF2LWNoaWxkIHtcbiAgICAgICAgICAtLWhlaWdodDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgb3BhY2l0eSwgdmlzaWJpbGl0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUgPiAubmF2LWNoaWxkIHtcbiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWhlaWdodCwgYXV0byk7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZS1jdXJyZW50ID4gYSB7XG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdzaXRlX3N0YXRlJykpIHtcbiAgLnNpdGUtc3RhdGUge1xuICAgIGZsZXgtd3JhcCgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cblxuICAuc2l0ZS1zdGF0ZS1pdGVtIHtcbiAgICAvLyBGaXggaXNzdWUgIzEwM1xuICAgIC8vIFRoZSBjbGljayBhcmVhIG9mIHRoZSBsaW5rIGJlY29tZXMgc21hbGxlclxuICAgIHBhZGRpbmc6IDAgMTVweDtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5zaXRlLXN0YXRlLWl0ZW0tY291bnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHNpdGUtc3RhdGUtaXRlbS1jb3VudC1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC5zaXRlLXN0YXRlLWl0ZW0tbmFtZSB7XG4gICAgY29sb3I6ICRzaXRlLXN0YXRlLWl0ZW0tbmFtZS1jb2xvcjtcbiAgICBmb250LXNpemU6ICRzaXRlLXN0YXRlLWl0ZW0tbmFtZS1mb250LXNpemU7XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygncmVsYXRlZF9wb3N0cy5lbmFibGUnKSkge1xuICAuc2lkZWJhci1wb3N0LXJlbGF0ZWQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVyO1xuICAgIHBhZGRpbmc6ICRzaWRlYmFyLXBhZGRpbmcgMCAwIDA7XG4gIH1cblxuICAucG9wdWxhci1wb3N0cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAucG9wdWxhci1wb3N0cy1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAucG9wdWxhci1wb3N0cy1saW5rIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluLW91dDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZW51LWl0ZW0tYmctY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wb3B1bGFyLXBvc3RzLXRpbWUge1xuICAgICAgICBjb2xvcjogJHNpdGUtc3RhdGUtaXRlbS1uYW1lLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9vdGVyIFNlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZm9vdGVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgcGFkZGluZzogMjBweCAwO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCByaWdodDtcblxuICAmLmZvb3Rlci1maXhlZCB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG5cbi8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4vLyBlbGVtZW50cyBvZiAuZm9vdGVyLWlubmVyIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4uZm9vdGVyLWlubmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogJHNjaGVtZS10ZXh0LWFsaWduO1xuICBmbGV4LWNvbHVtbigpO1xuICBtYWluLWNvbnRhaW5lcigpO1xufVxuXG4udXNlLW1vdGlvbiB7XG4gIC5mb290ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBpY29uLWFuaW1hdGUge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuXG4gIDEwJSwgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG5cbiAgNTAlLCA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxufVxuXG4ubGFuZ3VhZ2VzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAubGFuZy1zZWxlY3QtbGFiZWwgc3BhbiB7XG4gICAgbWFyZ2luOiAwIC41ZW07XG4gIH1cblxuICAubGFuZy1zZWxlY3Qge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ud2l0aC1sb3ZlIHtcbiAgY29sb3I6IGNvbnZlcnQoaGV4by1jb25maWcoJ2Zvb3Rlci5pY29uLmNvbG9yJykpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCA1cHg7XG5cbiAgaWYgKGhleG8tY29uZmlnKCdmb290ZXIuaWNvbi5hbmltYXRlZCcpKSB7XG4gICAgYW5pbWF0aW9uOiBpY29uLWFuaW1hdGUgMS4zM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cbn1cblxuaWYgKGhleG8tY29uZmlnKCdmb290ZXIuYmVpYW4uZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdmb290ZXIuYmVpYW4uZ29uZ2FuX2ljb25fdXJsJykpIHtcbiAgLmJlaWFuIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAzcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2J1c3VhbnppX2NvdW50LmVuYWJsZScpKSB7XG4gIC5idXN1YW56aS1jb3VudCB7XG4gICAgaWYgKGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC50b3RhbF92aXNpdG9ycycpKSB7XG4gICAgICAjYnVzdWFuemlfY29udGFpbmVyX3NpdGVfdXYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQudG90YWxfdmlld3MnKSkge1xuICAgICAgI2J1c3VhbnppX2NvbnRhaW5lcl9zaXRlX3B2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygnYmFjazJ0b3AuZW5hYmxlJykpIHtcbiAgLmJhY2stdG8tdG9wIHtcbiAgICBmb250LXNpemU6ICRiMnQtZm9udC1zaXplO1xuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIGlmIChub3QgaGV4by1jb25maWcoJ2JhY2sydG9wLnNjcm9sbHBlcmNlbnQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogJHNpZGViYXItdG9nZ2xlLXNpemU7XG4gICAgfVxuXG4gICAgaWYgKGhleG8tY29uZmlnKCdiYWNrMnRvcC5zaWRlYmFyJykpIHtcbiAgICAgIG1hcmdpbjogMjBweCAtICRzaWRlYmFyLW9mZnNldCAtMTBweCAtMjBweDtcbiAgICAgIC8vIEZJWE1FOiBvcGFjaXR5IG92ZXJyaWRlIGJ5IG1vdGlvblxuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICAgJi5iYWNrLXRvLXRvcC1vbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogJGIydC1vcGFjaXR5O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6ICRiMnQtb3BhY2l0eS1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYm90dG9tOiAkYjJ0LXBvc2l0aW9uLWJvdHRvbTtcbiAgICAgIGNvbG9yOiAkYjJ0LWNvbG9yO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogJHNpZGViYXItdG9nZ2xlLXNpemU7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgLy8gT3ZlcnJpZGUgaW4gUGlzY2VzXG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3R0b207XG4gICAgICBzaWRlYmFyLXRvZ2dsZSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cblxuICAgICAgJi5iYWNrLXRvLXRvcC1vbiB7XG4gICAgICAgIGJvdHRvbTogJGIydC1wb3NpdGlvbi1ib3R0b20tb247XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucnRsIHtcbiAgJi5wb3N0LWJvZHkge1xuICAgIHAsIGEsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGxpLCB1bCwgb2wge1xuICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICBmb250LWZhbWlseTogVUtJSiBFa3JhbjtcbiAgICB9XG4gIH1cblxuICAmLnBvc3QtdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBVS0lKIEVrcmFuO1xuICB9XG59XG5cbi5wb3N0LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHRleHQtYWxpZ246ICRzY2hlbWUtdGV4dC1hbGlnbjtcbn1cblxuLnVzZS1tb3Rpb24ge1xuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLnBvc3RfYmxvY2snKSkge1xuICAgIC5wb3N0LWJsb2NrLCAucGFnaW5hdGlvbiwgLmNvbW1lbnRzIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLnBvc3RfaGVhZGVyJykpIHtcbiAgICAucG9zdC1oZWFkZXIge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24ucG9zdF9ib2R5JykpIHtcbiAgICAucG9zdC1ib2R5IHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLmNvbGxfaGVhZGVyJykpIHtcbiAgICAuY29sbGVjdGlvbi1oZWFkZXIge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0ICdwb3N0LWNvbGxhcHNlJztcbkBpbXBvcnQgJ3Bvc3QtYm9keSc7XG5AaW1wb3J0ICdwb3N0LWdhbGxlcnknO1xuQGltcG9ydCAncG9zdC1oZWFkZXInO1xuQGltcG9ydCAncG9zdC1uYXYnO1xuQGltcG9ydCAncG9zdC1mb290ZXInO1xuQGltcG9ydCAncG9zdC13aWRnZXRzJztcbkBpbXBvcnQgJ3Bvc3QtcmV3YXJkJztcbkBpbXBvcnQgJ3Bvc3QtZm9sbG93bWUnO1xuIiwiLnBvc3RzLWNvbGxhcHNlIC5wb3N0LWNvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAkcG9zdHMtY29sbGFwc2UtbWFyZ2luO1xuICBtYXJnaW4tbGVmdDogJHBvc3RzLWNvbGxhcHNlLW1hcmdpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICttb2JpbGUoKSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRwb3N0cy1jb2xsYXBzZS1tYXJnaW4tbW9iaWxlO1xuICAgIG1hcmdpbi1yaWdodDogJHBvc3RzLWNvbGxhcHNlLW1hcmdpbi1tb2JpbGU7XG4gIH1cblxuICAuY29sbGVjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleS1kYXJrO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICBtYXJnaW4tbGVmdDogLTZweDtcbiAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJvdW5kLWljb24oMTBweCk7XG4gICAgfVxuICB9XG5cbiAgLmNvbGxlY3Rpb24teWVhciB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlc3Q7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiA2MHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNvbGxlY3Rpb24teWVhci1jb3VudCB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlc3Q7XG4gICAgICBiYWRnZSgpO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcm91bmQtaWNvbig4cHgpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2xsZWN0aW9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JleS1saWdodDtcbiAgICAvLyAycHggaXMgZXF1YWwgdG8gaGFsZiB0aGUgd2lkdGggb2YgLnBvc3RzLWNvbGxhcHNlOjpiZWZvcmVcbiAgICBtYXJnaW46IDMwcHggMnB4IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgbGVmdDogLTZweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAgIHJvdW5kLWljb24oNnB4KTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRncmV5LWRpbTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBvc3QtbWV0YS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlc3Q7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG5cbiAgLnBvc3QtdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuZmEge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZXNtb2tlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIFRvIGRvOiAxLjI1ZW0gaXMgaW5hY2N1cmF0ZSB3aGVuIC5jb2xsZWN0aW9uLXRpdGxlIGhhcyBsaW5lIGJyZWFrcyBvbiBtb2JpbGVcbiAgICB0b3A6IDEuMjVlbTtcbiAgICB3aWR0aDogNHB4O1xuICB9XG59XG4iLCIucG9zdC1ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1wb3N0cztcbiAgd29yZC13cmFwKCk7XG5cbiAgK2Rlc2t0b3AtbGFyZ2UoKSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICB9XG5cbiAgK2Rlc2t0b3AoKSB7XG4gICAgdGV4dC1hbGlnbjogdW5xdW90ZShoZXhvLWNvbmZpZygndGV4dF9hbGlnbi5kZXNrdG9wJykpO1xuICB9XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgdGV4dC1hbGlnbjogdW5xdW90ZShoZXhvLWNvbmZpZygndGV4dF9hbGlnbi5tb2JpbGUnKSk7XG4gIH1cblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAvLyBTdXBwb3J0ZWQgcGx1Z2luczogaGV4by1yZW5kZXJlci1tYXJrZG93bi1pdCBoZXhvLXJlbmRlcmVyLW1hcmtlZFxuICAgIC5oZWFkZXItYW5jaG9yLCAuaGVhZGVybGluayB7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5LWljb25zKCdcXGYwYzEnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5oZWFkZXItYW5jaG9yLCAuaGVhZGVybGluayB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZXh0dXJsIC5mYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGV4b2pzL2hleG8tcmVuZGVyZXItbWFya2VkL3B1bGwvMjY0XG4gIGltZyArIGZpZ2NhcHRpb24sIC5mYW5jeWJveCArIGZpZ2NhcHRpb24ge1xuICAgIGNvbG9yOiAkZ3JleS1kYXJrO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IC0xNXB4IGF1dG8gMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBpZnJhbWUsIGltZywgdmlkZW8sIGVtYmVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogNzUlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIucG9zdC1nYWxsZXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG5cbiAgLnBvc3QtZ2FsbGVyeS1pbWFnZSB7XG4gICAgZmxleDogMTtcblxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDQwcHggMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTIwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgLy8gT3ZlcnJpZGUgZGFya21vZGUgaW1hZ2Ugb3BhY2l0eS5cbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnBvc3RzLWV4cGFuZCAucG9zdC1nYWxsZXJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbn1cblxuLnBvc3RzLWNvbGxhcHNlIC5wb3N0LWdhbGxlcnkge1xuICBtYXJnaW46IDE1cHggMDtcbn1cbiIsIi5wb3N0cy1leHBhbmQgLnBvc3QtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wb3N0cy1leHBhbmQgLnBvc3QtdGl0bGUge1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2VzdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiBpbml0aWFsO1xuICB3b3JkLXdyYXAoKTtcblxuICBpZiAoaGV4by1jb25maWcoJ3Bvc3RfZWRpdC5lbmFibGUnKSkge1xuICAgIC5wb3N0LWVkaXQtbGluayB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMS4yZW07XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbi1lYXNlLWluO1xuXG4gICAgICArbW9iaWxlLXNtYWxsKCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wb3N0cy1leHBhbmQgLnBvc3QtdGl0bGUtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgLy8gRml4IGlzc3VlICM3NVxuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbi1lYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuXG4gIC5mYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLnBvc3Qtc3RpY2t5LWZsYWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8vIEZpeCBpc3N1ZSAjODAgIzE0MFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xufVxuXG4ucG9zdHMtZXhwYW5kIC5wb3N0LW1ldGEtY29udGFpbmVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcG9zdHM7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuXG4gIC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgdGltZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JleS1kYXJrO1xuICB9XG59XG5cbi8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4vLyBlbGVtZW50cyBvZiAucG9zdC1tZXRhIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4ucG9zdC1tZXRhIHtcbiAgZmxleC13cmFwKCk7XG59XG5cbi8vIC5wb3N0LW1ldGEtaXRlbSBleGlzdHMgaW4gLnBvc3QtbWV0YSBhbmQgZm9vdGVyXG46bm90KC5wb3N0LW1ldGEtYnJlYWspICsgLnBvc3QtbWV0YS1pdGVtOjpiZWZvcmUge1xuICBjb250ZW50OiAnfCc7XG4gIG1hcmdpbjogMCAuNWVtO1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0taWNvbiB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0tdGV4dCB7XG4gIGlmIChub3QgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5pdGVtX3RleHQnKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5wb3N0LW1ldGEtYnJlYWsge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG59XG5cbmlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQuZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC5wb3N0X3ZpZXdzJykpIHtcbiAgI2J1c3VhbnppX2NvbnRhaW5lcl9wYWdlX3B2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIucG9zdC1uYXYge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZzogMTBweCA1cHggMDtcbn1cblxuLnBvc3QtbmF2LWl0ZW0ge1xuICBmbGV4OiAxO1xuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDJweDtcbiAgICB9XG4gIH1cblxuICAuZmEge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5mYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmZhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGbGV4Ym94IGxheW91dCBtYWtlcyBpdCBwb3NzaWJsZSB0byByZW9yZGVyIHRoZSBjaGlsZFxuLy8gZWxlbWVudHMgb2YgLnBvc3QtZm9vdGVyIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4vLyBGaXggaXNzdWUgIzE2XG4vLyBUbyBkbzogdXNlIGBnYXBgIGluc3RlYWQgb2YgYG1hcmdpbmBcbi8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tL2ZsZXhib3gtZ2FwXG4ucG9zdC1mb290ZXIge1xuICBmbGV4LWNvbHVtbigpO1xufVxuXG4ucG9zdC1lb2Yge1xuICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogJHBvc3QtZW9mLW1hcmdpbi10b3AgYXV0byAkcG9zdC1lb2YtbWFyZ2luLWJvdHRvbTtcbiAgd2lkdGg6IDglO1xuXG4gIC5wb3N0LWJsb2NrOmxhc3Qtb2YtdHlwZSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmlmIChoZXhvLWNvbmZpZygnY3JlYXRpdmVfY29tbW9ucy5wb3N0JykpIHtcbiAgLnBvc3QtY29weXJpZ2h0IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc3QtY2FyZCgpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcZjI1ZSc7XG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IEJyYW5kcyc7XG4gICAgICBmb250LXNpemU6IDIwMHB4O1xuICAgICAgb3BhY2l0eTogLjE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTUwcHg7XG4gICAgICB0b3A6IC0xNTBweDtcbiAgICB9XG4gIH1cbn1cblxuLnBvc3QtdGFncyB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHRleHQtYWxpZ246ICRzY2hlbWUtdGV4dC1hbGlnbjtcblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnNvY2lhbC1saWtlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBwYWRkaW5nLXRvcDogMWVtO1xuICBmbGV4LXdyYXAoKTtcblxuICBhIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG4iLCIucmV3YXJkLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogJHBvc3QtY2FyZC1tYXJnaW47XG4gIHBhZGRpbmc6IDFlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICBidXR0b24oJHNpZGViYXItaGlnaGxpZ2h0KTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkc2lkZWJhci1oaWdobGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG91dGxpbmU6IDA7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICB9XG59XG5cbi5wb3N0LXJld2FyZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICYuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpZiAoaGV4by1jb25maWcoJ3Jld2FyZF9zZXR0aW5ncy5hbmltYXRpb24nKSkge1xuICAgICAgJjpob3ZlciBzcGFuIHtcbiAgICAgICAgYW5pbWF0aW9uOiBuZXh0LXJvbGwgLjFzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgLy8gVGhlIGFuaW1hdGlvbiBtYXkgYWZmZWN0IDpob3ZlciBvZiBpbWcgaW4gZGFyayBtb2RlXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogLjhlbSAyZW0gMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6ICRwb3N0LXJld2FyZC1pbWctd2lkdGg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBuZXh0LXJvbGwge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMzBkZWcpO1xuICB9XG59XG4iLCIuY2F0ZWdvcnktYWxsLXBhZ2Uge1xuICAuY2F0ZWdvcnktYWxsLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY2F0ZWdvcnktYWxsIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuY2F0ZWdvcnktbGlzdC1pdGVtIHtcbiAgICBtYXJnaW46IDVweCAxMHB4O1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3QtY291bnQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICBiYWRnZSgpO1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxufVxuIiwiQGtleWZyYW1lcyBkb3QtZmxhc2gge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgfVxufVxuXG4uZXZlbnQtbGlzdCB7XG4gIGhyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stZGVlcDtcbiAgICBtYXJnaW46IDIwcHggMCA0NXB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBjb250ZW50OiAnTk9XJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50IHtcbiAgICAtLWV2ZW50LWJhY2tncm91bmQ6ICRibGFjay1kZWVwO1xuICAgIC0tZXZlbnQtZm9yZWdyb3VuZDogJGdyZXk7XG4gICAgLS1ldmVudC10aXRsZTogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZXZlbnQtYmFja2dyb3VuZCk7XG4gICAgcGFkZGluZzogMTVweDtcblxuICAgIC5ldmVudC1zdW1tYXJ5IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBjb2xvcjogdmFyKC0tZXZlbnQtdGl0bGUpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAwIDAgMzVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBkb3QtZmxhc2ggMXMgYWx0ZXJuYXRlIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ldmVudC10aXRsZSk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJvdW5kLWljb24oMTJweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZShvZGQpIC5ldmVudC1zdW1tYXJ5OjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuNXM7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmV2ZW50LXJlbGF0aXZlLXRpbWUge1xuICAgICAgY29sb3I6IHZhcigtLWV2ZW50LWZvcmVncm91bmQpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICB9XG5cbiAgICAuZXZlbnQtZGV0YWlscyB7XG4gICAgICBjb2xvcjogdmFyKC0tZXZlbnQtZm9yZWdyb3VuZCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgcGFkZGluZzogNnB4IDAgNnB4IDM1cHg7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ldmVudC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5LWljb25zKCk7XG4gICAgICB9XG5cbiAgICAgICYuZXZlbnQtbG9jYXRpb246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwNDEnO1xuICAgICAgfVxuXG4gICAgICAmLmV2ZW50LWR1cmF0aW9uOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMDE3JztcbiAgICAgIH1cblxuICAgICAgJi5ldmVudC1kZXNjcmlwdGlvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjAyNCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50LXBhc3Qge1xuICAgIC0tZXZlbnQtYmFja2dyb3VuZDogJHdoaXRlc21va2U7XG4gICAgLS1ldmVudC1mb3JlZ3JvdW5kOiAkZ3JleS1kYXJrO1xuICAgIC0tZXZlbnQtdGl0bGU6ICRibGFjay1kZWVwO1xuICB9XG59XG4iLCJ1bC5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXN0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwIDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICBsaTpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnL1xcMDBhMCc7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAuNWVtO1xuICB9XG5cbiAgbGk6bGFzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbiIsIi50YWctY2xvdWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMTBweDtcbiAgfVxufVxuXG5mb3IgJHRhZy1jbG91ZCBpbiAoMCAuLiAxMCkge1xuICAkdGFnLWNsb3VkLWNvbG9yID0gbWl4KCR0YWctY2xvdWQtZW5kLCAkdGFnLWNsb3VkLXN0YXJ0LCAkdGFnLWNsb3VkICogMTApO1xuICAudGFnLWNsb3VkLXskdGFnLWNsb3VkfSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgICBjb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIGZvciAkdGFnLWNsb3VkIGluICgwIC4uIDEwKSB7XG4gICAgICAkdGFnLWNsb3VkLWNvbG9yID0gbWl4KCR0YWctY2xvdWQtZW5kLWRhcmssICR0YWctY2xvdWQtc3RhcnQtZGFyaywgJHRhZy1jbG91ZCAqIDEwKTtcbiAgICAgIC50YWctY2xvdWQteyR0YWctY2xvdWR9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR0YWctY2xvdWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpZiAoaGV4by1jb25maWcoJ2xvY2FsX3NlYXJjaC5lbmFibGUnKSBvciBoZXhvLWNvbmZpZygnYWxnb2xpYV9zZWFyY2guZW5hYmxlJykpIHtcbiAgLnNlYXJjaC1hY3RpdmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuc2VhcmNoLXBvcC1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC40cywgYmFja2dyb3VuZCAuNHM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtNDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtcG9wdXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzO1xuICAgIHdpZHRoOiA3MDBweDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICArbW9iaWxlKCkge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zZWFyY2gtaWNvbiwgLnBvcHVwLWJ0bi1jbG9zZSB7XG4gICAgICBjb2xvcjogJGdyZXktZGFyaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG5cbiAgICAucG9wdXAtYnRuLWNsb3NlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciAuZmEge1xuICAgICAgICBjb2xvcjogJGJsYWNrLWRlZXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1oZWFkZXIge1xuICAgICAgYmFja2dyb3VuZDogJGdhaW5zYm9ybztcbiAgICAgIGlmIChoZXhvLWNvbmZpZygnZGFya21vZGUnKSkge1xuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGdyZXktZGltO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNTVweCk7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IDVweCAyNXB4O1xuXG4gICAgICBociB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW46IDVweCAwIDEwcHg7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWxpc3Qge1xuICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYS5zZWFyY2gtcmVzdWx0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHAuc2VhcmNoLXJlc3VsdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRncmV5LWxpZ2h0O1xuICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1pbnB1dC1jb250YWluZXIge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWljb24ge1xuICAgICAgY29sb3I6ICRncmV5LWxpZ2h0O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5tYXJrLnNlYXJjaC1rZXl3b3JkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJHJlZDtcbiAgY29sb3I6ICRyZWQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5pZiAoaGV4by1jb25maWcoJ2FsZ29saWFfc2VhcmNoLmVuYWJsZScpKSB7XG4gIC5zZWFyY2gtc3RhdHMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnBhZ2luYXRpb24uYWxnb2xpYS1wYWdpbmF0aW9uIHtcbiAgICAvLyBPdmVycmlkZSB0aGUgZGVmYXVsdCBzdHlsZSBvZiBwYWdpbmF0aW9uXG4gICAgLy8gUHV0IHBhZ2luYXRpb24gYXQgdGhlIGJvdHRvbSB3aGVuIHRoZXJlIGlzIHN1ZmZpY2llbnQgaGVpZ2h0XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgLy8gT3ZlcnJpZGUgbW90aW9uXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RoZW1lLW5leHQvaGV4by10aGVtZS1uZXh0L2lzc3Vlcy81MzdcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG4iLCJAaW1wb3J0ICdkaXNxdXNqcyc7XG5AaW1wb3J0ICdnaXRhbGsnO1xuQGltcG9ydCAndXR0ZXJhbmNlcyc7XG5AaW1wb3J0ICdzZWFyY2gnO1xuQGltcG9ydCAnbWF0aCc7XG5cbi51c2UtbW90aW9uIC5hbmltYXRlZCB7XG4gIC8vIEZpeCBpc3N1ZSAjNDggIzU1XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7XG4gIC8vIEZpeCBpc3N1ZSAjNDYgLmFuaW1hdGVkIGluIC5zaWRlYmFyXG4gIHZpc2liaWxpdHk6IGluaGVyaXQ7XG59XG5cbi51c2UtbW90aW9uIC5zaWRlYmFyIC5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG4iLCJoZWFkZXIuaGVhZGVyIHtcbiAgZ2VtaW5pLWJsb2NrKCk7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgfVxufVxuXG4ubWFpbiB7XG4gIC8vIE1ha2Ugc3VyZSB0aGF0IC5oZWFkZXIgYW5kIC5tYWluLWlubmVyIGFyZSB0aGUgc2FtZSBoZWlnaHRcbiAgLy8gUmVxdWlyZWQgZm9yIC5zaWRlYmFyIGBwb3NpdGlvbjogc3RpY2t5O2BcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFpbi1jb250YWluZXIoKTtcblxuICBpZiAoJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCA9PSAncmlnaHQnKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLm1haW4taW5uZXIge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1pbm5lcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRjb250ZW50LXdyYXA7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uZm9vdGVyLWlubmVyIHtcbiAgaWYgKCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQgPT0gJ3JpZ2h0Jykge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzaWRlYmFyLXdpZHRoLWR1YWwtY29sdW1uICsgJHNpZGViYXItb2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogJHNpZGViYXItd2lkdGgtZHVhbC1jb2x1bW4gKyAkc2lkZWJhci1vZmZzZXQ7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuIiwiLmNvbHVtbiB7XG4gIHdpZHRoOiAkc2lkZWJhci13aWR0aC1kdWFsLWNvbHVtbjtcblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4uc2l0ZS1icmFuZC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1jb2xvcik7XG5cbiAgLnNpdGUtbmF2LW9uICYge1xuICAgICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDE2cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLW1ldGEge1xuICBwYWRkaW5nOiAyMHB4IDA7XG59XG5cbi5zaXRlLW5hdi10b2dnbGUsIC5zaXRlLW5hdi1yaWdodCB7XG4gICt0YWJsZXQoKSB7XG4gICAgZmxleC1jb2x1bW4oKTtcbiAgfVxuXG4gIC50b2dnbGUge1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIC50b2dnbGUtbGluZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaXRlLW5hdiB7XG4gICt0YWJsZXQoKSB7XG4gICAgc2l0ZS1uYXYtaGlkZS1ieS1kZWZhdWx0KCk7XG4gIH1cbn1cblxuLm1lbnUgLm1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgYSB7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gICAgbWVudS1pdGVtLXJvdygpO1xuXG4gICAgaWYgKG5vdCBoZXhvLWNvbmZpZygnbWVudV9zZXR0aW5ncy5iYWRnZXMnKSkge1xuICAgICAgJi5tZW51LWl0ZW0tYWN0aXZlOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICYubWVudS1pdGVtLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLnN1Yi1tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA2cHggMDtcblxuICAubWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgbWFyZ2luOiA1cHggMTBweDtcbiAgICAgIHBhZGRpbmc6IGluaXRpYWw7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIitkZXNrdG9wKCkge1xuICAuc2lkZWJhciB7XG4gICAgLy8gaHR0cHM6Ly9jYW5pdXNlLmNvbS9jc3Mtc3RpY2t5XG4gICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAkc2lkZWJhci1vZmZzZXQ7XG5cbiAgICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbnRlbnQtYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICAgIG1hcmdpbi10b3A6ICRzaWRlYmFyLW9mZnNldDtcbiAgICBtYXgtaGVpZ2h0OiAnY2FsYygxMDB2aCAtICVzKScgJSB1bml0KCRzaWRlYmFyLW9mZnNldCAqIDIsICdweCcpO1xuXG4gICAgaWYgKGhleG8tY29uZmlnKCdtb3Rpb24uZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdtb3Rpb24udHJhbnNpdGlvbi5zaWRlYmFyJykpIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAuc2l0ZS1zdGF0ZS1pdGVtIHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cblxuICAuc2lkZWJhciAuc2lkZWJhci1idXR0b24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGdyZXktbGlnaHQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkZ3JleS1saWdodDtcblxuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJG9yYW5nZSwgMjAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGlua3Mtb2YtYXV0aG9yIHtcbiAgICBmbGV4LXdyYXAoKTtcbiAgfVxuXG4gIC5saW5rcy1vZi1hdXRob3ItaXRlbSB7XG4gICAgc2lkZWJhci1pbmxpbmUtbGlua3MtaXRlbSgpO1xuXG4gICAgaWYgKG5vdCBoZXhvLWNvbmZpZygnc29jaWFsX2ljb25zLmljb25zX29ubHknKSkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJvZHktYmctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5saW5rcy1vZi1ibG9ncm9sbC1pdGVtIHtcbiAgICBpZiAoaGV4by1jb25maWcoJ2xpbmtzX3NldHRpbmdzLmxheW91dCcpID09ICdpbmxpbmUnKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBzaWRlYmFyLWlubGluZS1saW5rcy1pdGVtKCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhleG8tY29uZmlnKCdiYWNrMnRvcC5zaWRlYmFyJykpIHtcbiAgICAvLyBPbmx5IHdoZW4gYmFjazJ0b3Auc2lkZWJhciBpcyB0cnVlLCBhcHBseSB0aGUgZm9sbG93aW5nIHN0eWxlc1xuICAgIC5iYWNrLXRvLXRvcCB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib2R5LWJnLWNvbG9yKTtcbiAgICAgIG1hcmdpbjogOHB4IC0gJHNpZGViYXItb2Zmc2V0IC0xMHB4IC0xOHB4O1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm90dG9tLCBtYXJnaW4tdG9wO1xuXG4gICAgICAmLmJhY2stdG8tdG9wLW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL1Bpc2Nlcy9fbGF5b3V0JztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9faGVhZGVyJztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9fbWVudSc7XG5AaW1wb3J0ICcuLi9QaXNjZXMvX3N1Yi1tZW51JztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9fc2lkZWJhcic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZXdyaXRlIF9sYXlvdXQuc3R5bFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNpZGViYXIgcGFkZGluZyB1c2VkIGFzIG1haW4gZGVza3RvcCBjb250ZW50IHBhZGRpbmcgZm9yIHNpZGViYXIgcGFkZGluZyBhbmQgcG9zdCBibG9ja3MgcGFkZGluZyB0b28uXG5cbi8vIEluIGBzb3VyY2UvY3NzL192YXJpYWJsZXMvUGlzY2VzLnN0eWxgIHRoZXJlIGFyZSB2YXJpYWJsZSBmb3IgbWFpbiBvZmZzZXQ6XG4vLyAkc2lkZWJhci1vZmZzZXQgICAgICAgICAgICAgICAgICAgPSAxMnB4O1xuLy8gVGhpcyB2YWx1ZSBhbHNlIGNhbiBiZSBjaGFuZ2VkIGluIG1haW4gTmV4VCBjb25maWcgYXMgYHNpZGViYXI6IG9mZnNldDogMTJgIG9wdGlvbi5cblxuLy8gSW4gYHNvdXJjZS9jc3MvX3ZhcmlhYmxlcy9iYXNlLnN0eWxgIHRoZXJlIGFyZSB2YXJpYWJsZXMgZm9yIG90aGVyIHJlc29sdXRpb25zOlxuLy8gJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgICAgICAgICAgID0gMTBweDtcbi8vICRjb250ZW50LW1vYmlsZS1wYWRkaW5nICAgICAgICAgICA9IDhweDtcbi8vIFAuUy4gSWYgdSB3YW50IHRvIGNoYW5nZSB0aGlzIHBhZGRpbmdzIHUgbWF5IHNldCB0aGlzIHZhcmlhYmxlcyBpbnRvIGBjdXN0b21fZmlsZV9wYXRoLnZhcmlhYmxlYCAoaW4gdGhlbWUgX2NvbmZpZy55bWwpLlxuXG4vLyBTbywgaXQgd2lsbCAxMnB4IGluIERlc2t0b3AsIDEwcHggaW4gVGFibGV0cyBhbmQgOHB4IGluIE1vYmlsZXMgZm9yIGFsbCBwb3NzaWJsZSBwYWRkaW5ncy5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERlc2t0b3AgbGF5b3V0IHN0eWxlcy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3N0IGJsb2Nrcy5cbi5tYWluLWlubmVyIHtcbiAgLnN1Yi1tZW51LCAucG9zdC1ibG9jaywgLnRhYnMtY29tbWVudCwgJiA+IC5jb21tZW50cywgLmNvbW1lbnQtcG9zaXRpb24gLmNvbW1lbnRzLCAucGFnaW5hdGlvbiB7XG4gICAgZ2VtaW5pLWJsb2NrKCk7XG4gIH1cblxuICAucG9zdC1ibG9jazpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBnZW1pbmktYmxvY2stbm90LWZpcnN0KCk7XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtY29tbWVudCwgJiA+IC5jb21tZW50cywgLmNvbW1lbnQtcG9zaXRpb24gLmNvbW1lbnRzLCAucGFnaW5hdGlvbiB7XG4gICAgZ2VtaW5pLWJsb2NrLW5vdC1maXJzdCgpO1xuICB9XG59XG5cbi8vIFBvc3QgJiBDb21tZW50cyBibG9ja3MuXG4ucG9zdC1ibG9jaywgLmNvbW1lbnRzIHtcbiAgcGFkZGluZzogJGNvbnRlbnQtZGVza3RvcC1wYWRkaW5nO1xufVxuXG4vLyBQb3N0IGRlbGltaXRlcnMuXG4ucG9zdC1lb2Yge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBQYWdpbmF0aW9uLlxuLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiBpbml0aWFsO1xuICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWFkZXJzLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5wb3N0LWJvZHkge1xuICBoMSwgaDIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9keS1iZy1jb2xvcjtcbiAgfVxuXG4gIGgzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRib2R5LWJnLWNvbG9yO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyA+IDc2OHB4ICYgPCA5OTFweFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbit0YWJsZXQoKSB7XG4gIC8vIFBvc3RzIGluIGJsb2Nrcy5cbiAgLm1haW4taW5uZXIge1xuICAgIHBhZGRpbmc6ICRjb250ZW50LXRhYmxldC1wYWRkaW5nO1xuICB9XG5cbiAgLnBvc3RzLWV4cGFuZCB7XG4gICAgLy8gQ29tcG9uZW50cyBpbnNpZGUgUG9zdHMuXG4gICAgLnBvc3QtYnV0dG9uIHtcbiAgICAgIG1hcmdpbi10b3A6ICgkY29udGVudC10YWJsZXQtcGFkZGluZyAqIDIpO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWJsb2NrIHtcbiAgICAvLyBJbnNpZGUgcG9zdHMgYmxvY2tzIGNvbnRlbnQgcGFkZGluZyAoZGVmYXVsdCA0MHB4KS5cbiAgICBwYWRkaW5nOiAoJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgKiAyKTtcbiAgfVxuXG4gIC5jb21tZW50cyB7XG4gICAgcGFkZGluZzogJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgKCRjb250ZW50LXRhYmxldC1wYWRkaW5nICogMik7XG4gICAgLy8gcGFkZGluZzogaW5pdGlhbDtcbiAgICAvLyBwYWRkaW5nLXRvcDogJGNvbnRlbnQtdGFibGV0LXBhZGRpbmc7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDwgNzY3cHhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4rbW9iaWxlKCkge1xuICAvLyBQb3N0cyBpbiBibG9ja3MuXG4gIC5tYWluLWlubmVyIHtcbiAgICBwYWRkaW5nOiAkY29udGVudC1tb2JpbGUtcGFkZGluZztcbiAgfVxuXG4gIC5wb3N0cy1leHBhbmQge1xuICAgIC8vIENvbXBvbmVudHMgaW5zaWRlIFBvc3RzLlxuICAgIC5wb3N0LWJ1dHRvbiB7XG4gICAgICBtYXJnaW46ICRzaWRlYmFyLW9mZnNldCAwO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWJsb2NrIHtcbiAgICAvLyBJbnNpZGUgcG9zdHMgYmxvY2tzIGNvbnRlbnQgcGFkZGluZyAoZGVmYXVsdCA0MHB4KS5cbiAgICBwYWRkaW5nOiAkc2lkZWJhci1vZmZzZXQ7XG4gIH1cblxuICAuY29tbWVudHMge1xuICAgIHBhZGRpbmc6IDEwcHggJHNpZGViYXItb2Zmc2V0O1xuICB9XG59XG4iXX0= */