:root{--body-bg-color:#fff;--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:#222;--btn-default-bg:#222;--btn-default-color:#fff;--btn-default-border-color:#222;--btn-default-hover-bg:#fff;--btn-default-hover-color:#222;--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;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{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:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type='checkbox'],[type='radio']{box-sizing:border-box;padding:0}[type='number']::-webkit-inner-spin-button,[type='number']::-webkit-outer-spin-button{height:auto}[type='search']{outline-offset:-2px;-webkit-appearance:textfield}[type='search']::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}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:Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:1em;line-height:2;min-height:100%;position:relative;transition:padding .2s ease-in-out}h1,h2,h3,h4,h5,h6{font-family:Lato,'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:.875em}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:.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:0;color:var(--btn-default-color);display:inline-block;font-size:.875em;line-height:2;padding:0 20px;transition:background-color .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:.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{background:var(--highlight-gutter-background);color:var(--highlight-foreground);display:flow-root;font-size:.875em;line-height:1.2;padding:.5em}figure.highlight figcaption a,pre .caption a{color:var(--highlight-foreground);float:right}figure.highlight figcaption a:hover,pre .caption 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:.875em;padding:2px 4px;overflow-wrap:break-word}kbd{border:2px solid #ccc;border-radius:.2em;box-shadow:.1em .1em .2em rgba(0,0,0,0.1);font-family:inherit;padding:.1em .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{-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{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:.6;position:absolute;width:100%}.blockquote-center::before{border-top:1px solid #ccc;text-align:left;top:-20px;content:'\f10d';font-family:'Font Awesome 7 Free';font-weight:900}.blockquote-center::after{border-bottom:1px solid #ccc;bottom:-20px;text-align:right;content:'\f10e';font-family:'Font Awesome 7 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:repeat(auto-fill,minmax(300px,1fr));margin-bottom:20px;padding:1rem}.post-body .link-grid .link-grid-container{border:solid #ddd;box-shadow:1rem 1rem .5rem rgba(0,0,0,0.5);min-height:5rem;min-width:0;padding:.5rem;position:relative;transition:background .3s}.post-body .link-grid .link-grid-container:hover{animation:next-shake .5s;background:var(--card-bg-color)}.post-body .link-grid .link-grid-container:active{box-shadow:.5rem .5rem .25rem rgba(0,0,0,0.5);transform:translate(.2rem,.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:.8em;line-height:1.3rem;opacity:.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,0) 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(--body-bg-color);display:flex;display:flex;flex-wrap:wrap;justify-content:center;margin:0;padding:0;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:.25em .75em;text-align:center;transition:all .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 .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:.1em .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 40px}.brand:hover{color:var(--brand-hover-color)}.site-title{font-family:Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:1.375em;font-weight:normal;line-height:1.5;margin:0}.site-subtitle{color:#999;font-size:.8125em;margin: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:.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:.8125em;transition:border-color .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:#eee;border-radius:0;color:#555;font-weight:bold;line-height:1;margin-left:.35em;padding:1px 4px;text-shadow:none}.use-motion .menu-item{visibility:hidden}.github-corner :hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{color:#fff;fill:var(--theme-color);position:absolute;right:0;top:0;z-index:5}@media (max-width:991px){.github-corner .github-corner:hover .octo-arm{animation:none}.github-corner .github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.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:.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:#5455f1;display:inline-block;margin-right:3px;transform:translateY(-2px);border-radius:50%;content:' ';height:4px;width:4px}.links-of-blogroll-item{padding:0 5px}.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 .4s,opacity .4s;visibility:hidden;width:100%;z-index:10}.sidebar-active .sidebar-dimmer{opacity:.7;visibility:visible}.sidebar-inner{color:#999;padding:18px 10px;text-align:center;display:flex;flex-direction:column;justify-content:center}.sidebar-toggle{bottom:61px;height:16px;padding:5px;width:16px;background:#222;cursor:pointer;opacity:.8;position:fixed;z-index:30;left:30px}@media (max-width:991px){.sidebar-toggle{left:20px}}.sidebar-toggle:hover{opacity:1}@media (max-width:991px){.sidebar-toggle{opacity:1}}.sidebar-toggle:hover .toggle-line{background:#87daff}@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)}.sidebar-nav{font-size:.875em;height:0;margin:0;overflow:hidden;padding-left:0;pointer-events:none;transition:.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:#666;cursor:pointer;display:inline-block;transition:.2s ease-in-out;transition-property:border-bottom-color,color}.sidebar-nav li.sidebar-nav-overview{margin-left:10px}.sidebar-nav li:hover{color:#f5f5f5}.sidebar-toc-active .sidebar-nav-toc,.sidebar-overview-active .sidebar-nav-overview{border-bottom-color:#87daff;color:#87daff;transition-delay:.2s}.sidebar-toc-active .sidebar-nav-toc:hover,.sidebar-overview-active .sidebar-nav-overview:hover{color:#87daff}.sidebar-panel-container{align-items:start;display:grid;flex:1;overflow-x:hidden;overflow-y:auto;padding-top:0;transition:padding-top .2s ease-in-out}.sidebar-nav-active .sidebar-panel-container{padding-top:20px}.sidebar-panel{animation:deactivate-sidebar-panel .2s ease-in-out;grid-area:1/1;height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(0);transition:.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,.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:.2s,.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)}}.post-toc{font-size:.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 .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:.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:#87daff;color:#87daff}.post-toc .nav .active-current > a{color:#87daff}.post-toc .nav .active-current > a:hover{color:#87daff}.site-author-image{border:2px solid #333;max-width:96px;padding:2px}.site-author-name{color:#f5f5f5;font-weight:normal;margin:5px 0 0}.site-description{color:#999;font-size:1em;margin-top:5px}.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:1.25em;font-weight:600}.site-state-item-name{color:inherit;font-size:.875em}.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-author a{font-size:.8125em}.links-of-author i[class^='fa']{margin-right:2px}.cc-license .cc-opacity{border-bottom:0;opacity:.7}.cc-license .cc-opacity:hover{opacity:.9}.cc-license img{display:inline-block}.links-of-blogroll{font-size:.8125em}.links-of-blogroll-title{font-size:.875em;font-weight:600}.links-of-blogroll-list{list-style:none;gap:5px;margin:5px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;flex-direction:column}.links-of-blogroll-item{max-width:100%}.links-of-blogroll-item a{box-sizing:border-box;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer{color:#999;font-size:.875em;padding:20px 0;transition:.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:700px}@media (max-width:767px){.footer-inner{width:auto}}@media (min-width:1200px){.footer-inner{width:800px}}@media (min-width:1600px){.footer-inner{width:900px}}.use-motion .footer{opacity:0}.languages{display:inline-block;font-size:1.125em;position:relative}.languages .lang-select-label span{margin: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(.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:.2s ease-in-out;transition-property:bottom;background:#222;cursor:pointer;opacity:.8;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:1}@media (max-width:991px){.back-to-top{opacity:1}}.back-to-top:hover{color:#87daff}.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:.75em;background:#eee;border-radius:0;color:#555;font-weight:bold;line-height:1;margin-left:.35em;padding:1px 4px;text-shadow:none}.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 .2s ease-in-out}.posts-collapse .post-content .post-header::before{background:#bbb;border:1px solid #fff;left:-6px;position:absolute;top:.75em;transition:background .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:.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:.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:Lato,'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:.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 7 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:.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:.875em;margin-left:4px}.post-body figure:not(.highlight){margin:0 auto 20px}.post-body figure:not(.highlight) figcaption{color:#999;font-size:.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;max-width:100%;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 .2s ease-in-out;width:100%}.posts-expand .post-title-link:hover::before{transform:scaleX(1)}.posts-expand .post-title-link .fa{font-size:.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:Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:.75em;margin-top:3px}.posts-expand .post-meta-container .post-description{font-size:.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 .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:.875em;line-height:1.6}.post-nav-item a:active{top:2px}.post-nav-item .fa{font-size:.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:.8125em}.post-tags a:not(:last-child){margin-right:10px}.social-like{border-top:1px solid #eee;font-size:.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:#87daff;cursor:pointer;line-height:2;padding:0 15px;border:2px solid #87daff;border-radius:2px;outline:0;vertical-align:text-top}.reward-container button:hover{background:#87daff;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:.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:.75em;background:#eee;border-radius:0;color:#555;font-weight:bold;line-height:1;margin-left:.35em;padding:1px 4px;text-shadow:none}.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:.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 7 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(.8)}}ul.breadcrumb{font-size:.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:.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}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{margin:0 auto;width:700px}@media (max-width:767px){header.header{width:auto}}@media (min-width:1200px){header.header{width:800px}}@media (min-width:1600px){header.header{width:900px}}.main-inner{margin:0 auto;width:700px;padding-bottom:60px}@media (max-width:767px){.main-inner{width:auto}}@media (min-width:1200px){.main-inner{width:800px}}@media (min-width:1600px){.main-inner{width:900px}}@media (max-width:767px){.main-inner{padding-left:20px;padding-right:20px}}.post-block:first-of-type{padding-top:70px}@media (max-width:767px){.post-block:first-of-type{padding-top:35px}}.custom-logo-image{background:#fff;margin:0 auto 10px;max-width:150px;padding:5px}.brand{background:var(--btn-default-bg)}header.header{padding-top:100px}@media (max-width:767px){header.header{padding-top:50px}}@media (max-width:767px){.site-nav{padding-top:30px}}@media (max-width:767px){.main-menu{border-bottom:1px solid #ddd;border-top:1px solid #ddd}}@media (max-width:767px){.menu{text-align:left}}@media (max-width:767px){.menu .menu-item{margin:0 10px}}.menu .menu-item a{border-bottom:1px solid transparent}@media (max-width:767px){.menu .menu-item a{padding:5px 10px;display:flex;align-items:center}.menu .menu-item a .badge{margin-left:auto}}.menu .menu-item a:hover,.menu .menu-item a.menu-item-active{background:transparent;border-bottom:1px solid var(--link-hover-color)}@media (max-width:767px){.menu .menu-item a:hover,.menu .menu-item a.menu-item-active{border-bottom:1px dotted #ddd}}@media (min-width:768px){.menu .menu-item i[class^='fa']{display:block;line-height:2;margin-right:0;width:100%}}.sub-menu{margin:10px 0}.sub-menu .menu-item{display:inline-block}@media (min-width:1200px){.sidebar-dimmer{display:none}.sidebar-active{padding-left:320px}.sidebar-active .footer-fixed{left:320px}}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbG9ycy5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL25vcm1hbGl6ZS5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2Jhc2Uuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX21peGlucy5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3RhYmxlcy5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2J1dHRvbnMuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90b2dnbGVzLnN0eWwiLCJub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL3N0eWxlcy9kZWZhdWx0LmNzcyIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy9oaWdobGlnaHQvaW5kZXguc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX3NjaGVtZXMvTXVzZS9fc2lkZWJhci5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3RhZ3MvYmxvY2txdW90ZS1jZW50ZXIuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2dyb3VwLXBpY3R1cmVzLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy9sYWJlbC5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3RhZ3MvbGluay1ncmlkLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy9ub3RlLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy90YWJzLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvcGFnaW5hdGlvbi5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2NvbW1lbnRzLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvaW5kZXguc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9zaXRlLW1ldGEuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9zaXRlLW5hdi5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvaGVhZGVyL21lbnUuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9naXRodWItYmFubmVyLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL2luZGV4LnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItdG9nZ2xlLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItbmF2LnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItdG9jLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItYXV0aG9yLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpdGUtc3RhdGUuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1idXR0b24uc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1hdXRob3ItbGlua3Muc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1jb3B5cmlnaHQuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1ibG9ncm9sbC5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvZm9vdGVyL2luZGV4LnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9iYWNrLXRvLXRvcC5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcG9zdC9pbmRleC5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcG9zdC9wb3N0LWNvbGxhcHNlLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtYm9keS5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcG9zdC9wb3N0LWdhbGxlcnkuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1oZWFkZXIuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1uYXYuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1mb290ZXIuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC13aWRnZXRzLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtcmV3YXJkLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wYWdlcy9jYXRlZ29yaWVzLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wYWdlcy9zY2hlZHVsZS5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvYnJlYWRjcnVtYi5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvdGFnLWNsb3VkLnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy90aGlyZC1wYXJ0eS9zZWFyY2guc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3RoaXJkLXBhcnR5L2luZGV4LnN0eWwiLCJ0aGVtZXMvbmV4dC9zb3VyY2UvY3NzL19zY2hlbWVzL011c2UvX2xheW91dC5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9NdXNlL19oZWFkZXIuc3R5bCIsInRoZW1lcy9uZXh0L3NvdXJjZS9jc3MvX3NjaGVtZXMvTXVzZS9fbWVudS5zdHlsIiwidGhlbWVzL25leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9NdXNlL19zdWItbWVudS5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBT0FBLEFQQUEsTUFDRSxnQkFBaUIsS0FDakIsbUJBQW9CLEtBQ3BCLGdCQUFpQixRQUNqQixhQUFjLEtBQ2QsZUFBZ0IsUUFDaEIsa0JBQW1CLEtBQ25CLG1CQUFvQixLQUNwQixhQUFjLEtBQ2QsbUJBQW9CLEtBQ3BCLGNBQWUsS0FDZixvQkFBcUIsS0FDckIseUJBQTBCLFFBQzFCLDJCQUE0QixRQUM1QixxQkFBc0IsUUFDdEIsY0FBZSxLQUVmLGlCQUFrQixLQUNsQixv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QUNFLEtBQU0iLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gIC0tYm9keS1iZy1jb2xvcjogJGJvZHktYmctY29sb3I7XG4gIC0tY29udGVudC1iZy1jb2xvcjogJGNvbnRlbnQtYmctY29sb3I7XG4gIC0tY2FyZC1iZy1jb2xvcjogJGNhcmQtYmctY29sb3I7XG4gIC0tdGV4dC1jb2xvcjogJHRleHQtY29sb3I7XG4gIC0tc2VsZWN0aW9uLWJnOiAkc2VsZWN0aW9uLWJnO1xuICAtLXNlbGVjdGlvbi1jb2xvcjogJHNlbGVjdGlvbi1jb2xvcjtcbiAgLS1ibG9ja3F1b3RlLWNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgLS1saW5rLWNvbG9yOiAkbGluay1jb2xvcjtcbiAgLS1saW5rLWhvdmVyLWNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbiAgLS1icmFuZC1jb2xvcjogJGJyYW5kLWNvbG9yO1xuICAtLWJyYW5kLWhvdmVyLWNvbG9yOiAkYnJhbmQtaG92ZXItY29sb3I7XG4gIC0tdGFibGUtcm93LW9kZC1iZy1jb2xvcjogJHRhYmxlLXJvdy1vZGQtYmctY29sb3I7XG4gIC0tdGFibGUtcm93LWhvdmVyLWJnLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyLWJnLWNvbG9yO1xuICAtLW1lbnUtaXRlbS1iZy1jb2xvcjogJG1lbnUtaXRlbS1iZy1jb2xvcjtcbiAgLS10aGVtZS1jb2xvcjogJHRoZW1lLWNvbG9yO1xuXG4gIC0tYnRuLWRlZmF1bHQtYmc6ICRidG4tZGVmYXVsdC1iZztcbiAgLS1idG4tZGVmYXVsdC1jb2xvcjogJGJ0bi1kZWZhdWx0LWNvbG9yO1xuICAtLWJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvcjtcbiAgLS1idG4tZGVmYXVsdC1ob3Zlci1iZzogJGJ0bi1kZWZhdWx0LWhvdmVyLWJnO1xuICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtaG92ZXItY29sb3I7XG4gIC0tYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yO1xuXG4gIC0taGlnaGxpZ2h0LWJhY2tncm91bmQ6ICRoaWdobGlnaHQtYmFja2dyb3VuZDtcbiAgLS1oaWdobGlnaHQtZm9yZWdyb3VuZDogJGhpZ2hsaWdodC1mb3JlZ3JvdW5kO1xuICAtLWhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZDogJGhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZDtcbiAgLS1oaWdobGlnaHQtZ3V0dGVyLWZvcmVncm91bmQ6ICRoaWdobGlnaHQtZ3V0dGVyLWZvcmVncm91bmQ7XG5cbiAgY29sb3Itc2NoZW1lOiBsaWdodDtcbn1cblxuaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICA6cm9vdCB7XG4gICAgICAtLWJvZHktYmctY29sb3I6ICRib2R5LWJnLWNvbG9yLWRhcms7XG4gICAgICAtLWNvbnRlbnQtYmctY29sb3I6ICRjb250ZW50LWJnLWNvbG9yLWRhcms7XG4gICAgICAtLWNhcmQtYmctY29sb3I6ICRjYXJkLWJnLWNvbG9yLWRhcms7XG4gICAgICAtLXRleHQtY29sb3I6ICR0ZXh0LWNvbG9yLWRhcms7XG4gICAgICAtLXNlbGVjdGlvbi1iZzogJHNlbGVjdGlvbi1iZy1kYXJrO1xuICAgICAgLS1zZWxlY3Rpb24tY29sb3I6ICRzZWxlY3Rpb24tY29sb3ItZGFyaztcbiAgICAgIC0tYmxvY2txdW90ZS1jb2xvcjogJGJsb2NrcXVvdGUtY29sb3ItZGFyaztcbiAgICAgIC0tbGluay1jb2xvcjogJGxpbmstY29sb3ItZGFyaztcbiAgICAgIC0tbGluay1ob3Zlci1jb2xvcjogJGxpbmstaG92ZXItY29sb3ItZGFyaztcbiAgICAgIC0tYnJhbmQtY29sb3I6ICRicmFuZC1jb2xvci1kYXJrO1xuICAgICAgLS1icmFuZC1ob3Zlci1jb2xvcjogJGJyYW5kLWhvdmVyLWNvbG9yLWRhcms7XG4gICAgICAtLXRhYmxlLXJvdy1vZGQtYmctY29sb3I6ICR0YWJsZS1yb3ctb2RkLWJnLWNvbG9yLWRhcms7XG4gICAgICAtLXRhYmxlLXJvdy1ob3Zlci1iZy1jb2xvcjogJHRhYmxlLXJvdy1ob3Zlci1iZy1jb2xvci1kYXJrO1xuICAgICAgLS1tZW51LWl0ZW0tYmctY29sb3I6ICRtZW51LWl0ZW0tYmctY29sb3ItZGFyaztcbiAgICAgIC0tdGhlbWUtY29sb3I6ICR0aGVtZS1jb2xvci1kYXJrO1xuXG4gICAgICAtLWJ0bi1kZWZhdWx0LWJnOiAkYnRuLWRlZmF1bHQtYmctZGFyaztcbiAgICAgIC0tYnRuLWRlZmF1bHQtY29sb3I6ICRidG4tZGVmYXVsdC1jb2xvci1kYXJrO1xuICAgICAgLS1idG4tZGVmYXVsdC1ib3JkZXItY29sb3I6ICRidG4tZGVmYXVsdC1ib3JkZXItY29sb3ItZGFyaztcbiAgICAgIC0tYnRuLWRlZmF1bHQtaG92ZXItYmc6ICRidG4tZGVmYXVsdC1ob3Zlci1iZy1kYXJrO1xuICAgICAgLS1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yLWRhcms7XG4gICAgICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvci1kYXJrO1xuXG4gICAgICAtLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWJhY2tncm91bmQtZGFyaztcbiAgICAgIC0taGlnaGxpZ2h0LWZvcmVncm91bmQ6ICRoaWdobGlnaHQtZm9yZWdyb3VuZC1kYXJrO1xuICAgICAgLS1oaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQ6ICRoaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQtZGFyaztcbiAgICAgIC0taGlnaGxpZ2h0LWd1dHRlci1mb3JlZ3JvdW5kOiAkaGlnaGxpZ2h0LWd1dHRlci1mb3JlZ3JvdW5kLWRhcms7XG5cbiAgICAgIGNvbG9yLXNjaGVtZTogZGFyaztcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgb3BhY2l0eTogLjc1O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvKiBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSwga2JkLCBzYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1Yiwgc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbiwgaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sIHNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLCBbdHlwZT0nYnV0dG9uJ10sIFt0eXBlPSdyZXNldCddLCBbdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZywgW3R5cGU9J2J1dHRvbiddOi1tb3otZm9jdXNyaW5nLCBbdHlwZT0ncmVzZXQnXTotbW96LWZvY3VzcmluZywgW3R5cGU9J3N1Ym1pdCddOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAuMzVlbSAuNzVlbSAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9J2NoZWNrYm94J10sIFt0eXBlPSdyYWRpbyddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT0nc2VhcmNoJ10ge1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG59XG5cbi8qIEludGVyYWN0aXZlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0aW9uLWJnKTtcbiAgY29sb3I6IHZhcigtLXNlbGVjdGlvbi1jb2xvcik7XG59XG5cbmh0bWwsIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib2R5LWJnLWNvbG9yKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gIGlmIChoZXhvLWNvbmZpZygnYm9keV9zY3JvbGxiYXIub3ZlcmxheScpKSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIEBzdXBwb3J0cyAob3ZlcmZsb3cteDogY2xpcCkge1xuICAgICAgb3ZlcmZsb3cteDogY2xpcDtcbiAgICB9XG4gICAgd2lkdGg6IDEwMHZ3O1xuICB9XG5cbiAgaWYgKGhleG8tY29uZmlnKCdib2R5X3Njcm9sbGJhci5zdGFibGUnKSkge1xuICAgIC8vIGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWNzc19wcm9wZXJ0aWVzX3Njcm9sbGJhci1ndXR0ZXJcbiAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGluZ3M7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW46IDMwcHggMCAxNXB4O1xufVxuXG5mb3IgJGhlYWRsaW5lIGluICgxIC4uIDYpIHtcbiAgaHskaGVhZGxpbmV9IHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZ3MtYmFzZSAtICRmb250LXNpemUtaGVhZGluZ3Mtc3RlcCAqICRoZWFkbGluZTtcbiAgfVxufVxuXG5hIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaW5rLWRlY29yYXRpb24tY29sb3I7XG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgLy8gRm9yIGE6bm90KDphbnktbGluaylcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdvcmQtd3JhcCgpO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWxpbmstaG92ZXItY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWhvdmVyLWNvbG9yKTtcbiAgfVxufVxuXG5pZnJhbWUsIGltZywgdmlkZW8sIGVtYmVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgJGdyZXktbGlnaHRlciwgJGdyZXktbGlnaHRlciA0cHgsIHRyYW5zcGFyZW50IDRweCwgdHJhbnNwYXJlbnQgOHB4KTtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDNweDtcbiAgbWFyZ2luOiA0MHB4IDA7XG59XG5cbmJsb2NrcXVvdGUge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICRncmV5LWxpZ2h0ZXI7XG4gIGNvbG9yOiB2YXIoLS1ibG9ja3F1b3RlLWNvbG9yKTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE1cHg7XG5cbiAgY2l0ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnLSc7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gIH1cbn1cblxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJtb2JpbGUtc21hbGxlc3QoKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0MTNweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxubW9iaWxlLXNtYWxsKCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNTY3cHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbm1vYmlsZSgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG50YWJsZXQtbW9iaWxlKCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbnRhYmxldC1kZXNrdG9wKCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbnRhYmxldCgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbmRlc2t0b3AoKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxuZGVza3RvcC1sYXJnZSgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxuZGVza3RvcC1sYXJnZXN0KCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5zaWRlYmFyKCkge1xuICBpZiAoKCRzY2hlbWUgPT0gJ011c2UnKSBvciAoJHNjaGVtZSA9PSAnTWlzdCcpKSB7XG4gICAge2Jsb2NrfVxuICB9IGVsc2Uge1xuICAgICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICAge2Jsb2NrfVxuICAgIH1cbiAgfVxufVxuXG5yYW5kb20tY29sb3IoJG1pbiwgJG1heCkge1xuICByZXR1cm4gZmxvb3IobWF0aCgwLCAncmFuZG9tJykgKiAoJG1heCAtICRtaW4gKyAxKSArICRtaW4pO1xufVxuXG53b3JkLXdyYXAoKSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbmRpc2FibGUtdXNlci1zZWxlY3QoKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5zaWRlYmFyLWlubGluZS1saW5rcy1pdGVtKCkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmZsZXgtd3JhcCgpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuZmxleC1jb2x1bW4oKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5wb3N0LWNhcmQoKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmctY29sb3IpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRyZWQ7XG4gIG1hcmdpbjogJHBvc3QtY2FyZC1tYXJnaW47XG59XG5cbmZvbnQtZmFtaWx5LWljb25zKCRpY29uID0gJycpIHtcbiAgaWYgKCRpY29uKSB7XG4gICAgY29udGVudDogJGljb247XG4gIH1cbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNyBGcmVlJztcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxubWFpbi1jb250YWluZXIoKSB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogJGNvbnRlbnQtZGVza3RvcDtcblxuICArbW9iaWxlKCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgK2Rlc2t0b3AtbGFyZ2UoKSB7XG4gICAgd2lkdGg6ICRjb250ZW50LWRlc2t0b3AtbGFyZ2U7XG4gIH1cblxuICArZGVza3RvcC1sYXJnZXN0KCkge1xuICAgIHdpZHRoOiAkY29udGVudC1kZXNrdG9wLWxhcmdlc3Q7XG4gIH1cbn1cblxuc2lkZWJhci10b2dnbGUtcG9zaXRpb24oJHJldmVyc2UpIHtcbiAgJGNvbmRpdGlvbiA9ICgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50ID09ICdyaWdodCcpID09ICRyZXZlcnNlO1xuICAkYWxpZ25tZW50ID0gJGNvbmRpdGlvbiA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gIHskYWxpZ25tZW50fTogJGIydC1wb3NpdGlvbi1yaWdodDtcbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgeyRhbGlnbm1lbnR9OiAkYjJ0LXBvc2l0aW9uLXJpZ2h0LW1vYmlsZTtcbiAgfVxufVxuXG5zaWRlYmFyLXRvZ2dsZSgpIHtcbiAgYmFja2dyb3VuZDogJGIydC1iZy1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAkYjJ0LW9wYWNpdHk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogJHppbmRleC0zO1xuICBzaWRlYmFyLXRvZ2dsZS1wb3NpdGlvbihmYWxzZSk7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogJGIydC1vcGFjaXR5LWhvdmVyO1xuICB9XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgb3BhY2l0eTogJGIydC1vcGFjaXR5LWhvdmVyO1xuICB9XG59XG5cbnJvdW5kLWljb24oJGRpYW1ldGVyKSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6ICRkaWFtZXRlcjtcbiAgd2lkdGg6ICRkaWFtZXRlcjtcbn1cblxudG9nZ2xlLWFycm93KCRwb3NpdGlvbikge1xuICBpZiAoJHBvc2l0aW9uID09ICdyaWdodCcpIHtcbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgdG9wOiAycHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiAycHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIDpsYXN0LWNoaWxkIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRvcDogLTJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxufVxuXG50b2dnbGUtY2xvc2UoJHBvc2l0aW9uKSB7XG4gIDpudGgtY2hpbGQoMikge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBpZiAoJHBvc2l0aW9uID09ICdyaWdodCcpIHtcbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgdG9wOiA2cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cblxuICAgIDpsYXN0LWNoaWxkIHtcbiAgICAgIHRvcDogLTZweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIH1cblxuICAgIDpsYXN0LWNoaWxkIHtcbiAgICAgIHRvcDogLTZweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG59XG5cbnNpdGUtbmF2LWhpZGUtYnktZGVmYXVsdCgpIHtcbiAgLS1zY3JvbGwtaGVpZ2h0OiAwO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJvZHk6bm90KC5zaXRlLW5hdi1vbikgJiAuYW5pbWF0ZWQge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuXG4gIGJvZHkuc2l0ZS1uYXYtb24gJiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1zY3JvbGwtaGVpZ2h0KTtcbiAgICB2aXNpYmlsaXR5OiB1bnNldDtcbiAgfVxufVxuXG5idXR0b24oJGNvbG9yKSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBwYWRkaW5nOiAwIDE1cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5nZW1pbmktYmxvY2soKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbnRlbnQtYmctY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1pbm5lcjtcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctaW5uZXI7XG59XG5cbmdlbWluaS1ibG9jay1ub3QtZmlyc3QoKSB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgbWFyZ2luLXRvcDogJHNpZGViYXItb2Zmc2V0O1xuXG4gICt0YWJsZXQoKSB7XG4gICAgbWFyZ2luLXRvcDogJGNvbnRlbnQtdGFibGV0LXBhZGRpbmc7XG4gIH1cblxuICArbW9iaWxlKCkge1xuICAgIG1hcmdpbi10b3A6ICRjb250ZW50LW1vYmlsZS1wYWRkaW5nO1xuICB9XG59XG5cbm1lbnUtaXRlbS1yb3coKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLmJhZGdlIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5iYWRnZSgpIHtcbiAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRiYWRnZS1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1sZWZ0OiAuMzVlbTtcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG4gIHRleHQtc2hhZG93OiAkYmFkZ2UtdGV4dC1zaGFkb3c7XG59XG4iLCIudGFibGUtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc2l6ZTogJHRhYmxlLWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgMjBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnRib2R5IHRyIHtcbiAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1yb3ctb2RkLWJnLWNvbG9yKTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLXJvdy1ob3Zlci1iZy1jb2xvcik7XG4gIH1cbn1cblxuY2FwdGlvbiwgdGgsIHRkIHtcbiAgcGFkZGluZzogOHB4O1xufVxuXG50aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJHRhYmxlLWNlbGwtYm9yZGVyLWJvdHRvbS1jb2xvcjtcbn1cblxudGgge1xuICBmb250LXdlaWdodDogNzAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cblxudGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG59XG4iLCIuYnRuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWRlZmF1bHQtYmcpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1idG4tZGVmYXVsdC1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAkYnRuLWRlZmF1bHQtcmFkaXVzO1xuICBjb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtY29sb3IpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWJnKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yKTtcbiAgfVxuXG4gICsgLmJ0biB7XG4gICAgbWFyZ2luOiAwIDAgOHB4IDhweDtcbiAgfVxuXG4gIC5mYS1mdyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogKDE4ZW0gLyAxNCk7XG4gIH1cbn1cbiIsIi50b2dnbGUge1xuICBsaW5lLWhlaWdodDogMDtcblxuICAudG9nZ2xlLWxpbmUge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiAuNHM7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgb3BhY2l0eSwgdG9wLCB0cmFuc2Zvcm0sIHdpZHRoO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgfVxuXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuICB9XG59XG5cbi50b2dnbGUudG9nZ2xlLWFycm93IHtcbiAgdG9nZ2xlLWFycm93KCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQpO1xufVxuXG4udG9nZ2xlLnRvZ2dsZS1jbG9zZSB7XG4gIHRvZ2dsZS1jbG9zZSgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50KTtcbn1cbiIsInByZSBjb2RlLmhsanMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZzogMWVtXG59XG5jb2RlLmhsanMge1xuICBwYWRkaW5nOiAzcHggNXB4XG59XG4vKiFcbiAgVGhlbWU6IERlZmF1bHRcbiAgRGVzY3JpcHRpb246IE9yaWdpbmFsIGhpZ2hsaWdodC5qcyBzdHlsZVxuICBBdXRob3I6IChjKSBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbiAgTWFpbnRhaW5lcjogQGhpZ2hsaWdodGpzL2NvcmUtdGVhbVxuICBXZWJzaXRlOiBodHRwczovL2hpZ2hsaWdodGpzLm9yZy9cbiAgTGljZW5zZTogc2VlIHByb2plY3QgTElDRU5TRVxuICBUb3VjaGVkOiAyMDIxXG4qL1xuLypcblRoaXMgaXMgbGVmdCBvbiBwdXJwb3NlIG1ha2luZyBkZWZhdWx0LmNzcyB0aGUgc2luZ2xlIGZpbGUgdGhhdCBjYW4gYmUgbGlmdGVkXG5hcy1pcyBmcm9tIHRoZSByZXBvc2l0b3J5IGRpcmVjdGx5IHdpdGhvdXQgdGhlIG5lZWQgZm9yIGEgYnVpbGQgc3RlcFxuXG5UeXBpY2FsbHkgdGhpcyBcInJlcXVpcmVkXCIgYmFzZWxpbmUgQ1NTIGlzIGFkZGVkIGJ5IGBtYWtlc3R1ZmYuanNgIGR1cmluZyBidWlsZC5cbiovXG5wcmUgY29kZS5obGpzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHBhZGRpbmc6IDFlbVxufVxuY29kZS5obGpzIHtcbiAgcGFkZGluZzogM3B4IDVweFxufVxuLyogZW5kIGJhc2VsaW5lIENTUyAqL1xuLmhsanMge1xuICBiYWNrZ3JvdW5kOiAjRjNGM0YzO1xuICBjb2xvcjogIzQ0NFxufVxuLyogQmFzZSBjb2xvcjogc2F0dXJhdGlvbiAwOyAqL1xuLmhsanMtc3Vic3Qge1xuICAvKiBkZWZhdWx0ICovXG4gIFxufVxuLyogcHVycG9zZWx5IGlnbm9yZWQgKi9cbi5obGpzLWZvcm11bGEsXG4uaGxqcy1hdHRyLFxuLmhsanMtcHJvcGVydHksXG4uaGxqcy1wYXJhbXMge1xuICBcbn1cbi5obGpzLWNvbW1lbnQge1xuICBjb2xvcjogIzY5NzA3MFxufVxuLmhsanMtdGFnLFxuLmhsanMtcHVuY3R1YXRpb24ge1xuICBjb2xvcjogIzQ0NGFcbn1cbi5obGpzLXRhZyAuaGxqcy1uYW1lLFxuLmhsanMtdGFnIC5obGpzLWF0dHIge1xuICBjb2xvcjogIzQ0NFxufVxuLmhsanMta2V5d29yZCxcbi5obGpzLWF0dHJpYnV0ZSxcbi5obGpzLXNlbGVjdG9yLXRhZyxcbi5obGpzLW1ldGEgLmhsanMta2V5d29yZCxcbi5obGpzLWRvY3RhZyxcbi5obGpzLW5hbWUge1xuICBmb250LXdlaWdodDogYm9sZFxufVxuLyogVXNlciBjb2xvcjogaHVlOiAwICovXG4uaGxqcy10eXBlLFxuLmhsanMtc3RyaW5nLFxuLmhsanMtbnVtYmVyLFxuLmhsanMtc2VsZWN0b3ItaWQsXG4uaGxqcy1zZWxlY3Rvci1jbGFzcyxcbi5obGpzLXF1b3RlLFxuLmhsanMtdGVtcGxhdGUtdGFnLFxuLmhsanMtZGVsZXRpb24ge1xuICBjb2xvcjogIzg4MDAwMFxufVxuLmhsanMtdGl0bGUsXG4uaGxqcy1zZWN0aW9uIHtcbiAgY29sb3I6ICM4ODAwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkXG59XG4uaGxqcy1yZWdleHAsXG4uaGxqcy1zeW1ib2wsXG4uaGxqcy12YXJpYWJsZSxcbi5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLFxuLmhsanMtbGluayxcbi5obGpzLXNlbGVjdG9yLWF0dHIsXG4uaGxqcy1vcGVyYXRvcixcbi5obGpzLXNlbGVjdG9yLXBzZXVkbyB7XG4gIGNvbG9yOiAjYWI1NjU2XG59XG4vKiBMYW5ndWFnZSBjb2xvcjogaHVlOiA5MDsgKi9cbi5obGpzLWxpdGVyYWwge1xuICBjb2xvcjogIzY5NVxufVxuLmhsanMtYnVpbHRfaW4sXG4uaGxqcy1idWxsZXQsXG4uaGxqcy1jb2RlLFxuLmhsanMtYWRkaXRpb24ge1xuICBjb2xvcjogIzM5NzMwMFxufVxuLyogTWV0YSBjb2xvcjogaHVlOiAyMDAgKi9cbi5obGpzLW1ldGEge1xuICBjb2xvcjogIzFmNzE5OVxufVxuLmhsanMtbWV0YSAuaGxqcy1zdHJpbmcge1xuICBjb2xvcjogIzM4YVxufVxuLyogTWlzYyBlZmZlY3RzICovXG4uaGxqcy1lbXBoYXNpcyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpY1xufVxuLmhsanMtc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRcbn0iLCIvLyBVc2UgYEByZXF1aXJlYCB0byBmaXggaXNzdWUgIzY3XG5AcmVxdWlyZSBoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmxpZ2h0LmZpbGUnKSBpZiAoaGV4by1jb25maWcoJ2hpZ2hsaWdodC5lbmFibGUnKSAmJiBoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmxpZ2h0LmZpbGUnKSk7XG5pZiAoaGV4by1jb25maWcoJ3ByaXNtLmVuYWJsZScpKSB7XG4gIEByZXF1aXJlIGhleG8tY29uZmlnKCdwcmlzbS5saWdodCcpIGlmIChoZXhvLWNvbmZpZygncHJpc20ubGlnaHQnKSk7XG4gIEByZXF1aXJlIGhleG8tY29uZmlnKCdwcmlzbS5udW1iZXInKSBpZiAoaGV4by1jb25maWcoJ3ByaXNtLm51bWJlcicpKTtcbn1cblxuaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICBAcmVxdWlyZSBoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmRhcmsuZmlsZScpIGlmIChoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmVuYWJsZScpICYmIGhleG8tY29uZmlnKCdoaWdobGlnaHQuZGFyay5maWxlJykpO1xuICAgIEByZXF1aXJlIGhleG8tY29uZmlnKCdwcmlzbS5kYXJrJykgaWYgKGhleG8tY29uZmlnKCdwcmlzbS5lbmFibGUnKSAmJiBoZXhvLWNvbmZpZygncHJpc20uZGFyaycpKTtcbiAgfVxufVxuXG5AcmVxdWlyZSAnY29weS1jb2RlJyBpZiAoaGV4by1jb25maWcoJ2NvZGVibG9jay5jb3B5X2J1dHRvbi5lbmFibGUnKSk7XG5AcmVxdWlyZSAnZm9sZCcgaWYgKGhleG8tY29uZmlnKCdjb2RlYmxvY2suZm9sZC5lbmFibGUnKSk7XG5cbi8vIFBsYWNlaG9sZGVyOiAkY29kZS1pbmxpbmUgJGNvZGUtYmxvY2tcbiRjb2RlLWlubGluZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kKTtcbn1cblxuJGNvZGUtYmxvY2sge1xuICBAZXh0ZW5kICRjb2RlLWlubGluZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb2RlLWJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAyMHB4O1xufVxuXG4kZmlnY2FwdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZCk7XG4gIGNvbG9yOiB2YXIoLS1oaWdobGlnaHQtZm9yZWdyb3VuZCk7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgZm9udC1zaXplOiAkdGFibGUtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBwYWRkaW5nOiAuNWVtO1xuXG4gIGEge1xuICAgIGNvbG9yOiB2YXIoLS1oaWdobGlnaHQtZm9yZWdyb3VuZCk7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1oaWdobGlnaHQtZm9yZWdyb3VuZCk7XG4gICAgfVxuICB9XG59XG5cbnByZSwgY29kZSB7XG4gIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbn1cblxuY29kZSB7XG4gIEBleHRlbmQgJGNvZGUtaW5saW5lO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogJHRhYmxlLWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgd29yZC13cmFwKCk7XG59XG5cbmtiZCB7XG4gIEBleHRlbmQgJGNvZGUtaW5saW5lO1xuICBib3JkZXI6IDJweCBzb2xpZCAkZ3JleS1saWdodDtcbiAgYm9yZGVyLXJhZGl1czogLjJlbTtcbiAgYm94LXNoYWRvdzogLjFlbSAuMWVtIC4yZW0gcmdiYSgwLCAwLCAwLCAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBwYWRkaW5nOiAuMWVtIC4zZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIGBoaWdobGlnaHQubGluZV9udW1iZXI6IGZhbHNlYCBhbmQgYGhpZ2hsaWdodC53cmFwOiBmYWxzZWBcbi8vIGluIEhleG8gY29uZmlnIGdlbmVyYXRlcyBjb2RlLmhpZ2hsaWdodCBlbGVtZW50c1xuZmlndXJlLmhpZ2hsaWdodCB7XG4gIEBleHRlbmQgJGNvZGUtYmxvY2s7XG4gIC8vIFJlZHVjZSBET00gcmVmbG93IHdpdGggd3JhcFRhYmxlV2l0aEJveFxuICBvdmVyZmxvdzogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHByZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIEBleHRlbmQgJGZpZ2NhcHRpb247XG4gIH1cblxuICAuZ3V0dGVyIHtcbiAgICBkaXNhYmxlLXVzZXItc2VsZWN0KCk7XG5cbiAgICBwcmUge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0taGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1oaWdobGlnaHQtZ3V0dGVyLWZvcmVncm91bmQpO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5jb2RlIHByZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZXh0LXRoZW1lL2hleG8tdGhlbWUtbmV4dC9kaXNjdXNzaW9ucy80MTBcbiAgLm1hcmtlZCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMyk7XG4gIH1cbn1cblxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXhvanMvaGV4by11dGlsL3B1bGwvMjI5XG5wcmUgLmNhcHRpb24ge1xuICBAZXh0ZW5kICRmaWdjYXB0aW9uO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZ2lzdCB0YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xuXG4gIHRkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxucHJlIHtcbiAgQGV4dGVuZCAkY29kZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDEwcHg7XG5cbiAgY29kZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICB9XG59XG4iLCIrZGVza3RvcC1sYXJnZSgpIHtcbiAgLnNpZGViYXItZGltbWVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItYWN0aXZlIHtcbiAgICAvLyBOb3RlOiAkc2lkZWJhci13aWR0aC1leHBhbmRlZCArICRjb250ZW50LWRlc2t0b3AtbGFyZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiBkZXNrdG9wLWxhcmdlIHRocmVzaG9sZFxuICAgIC8vIE90aGVyd2lzZSBhIGhvcml6b250YWwgc2Nyb2xsYmFyIHdpbGwgYXBwZWFyXG4gICAgaWYgKCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQgPT0gJ3JpZ2h0Jykge1xuICAgICAgcGFkZGluZy1yaWdodDogJHNpZGViYXItd2lkdGgtZXhwYW5kZWQ7XG5cbiAgICAgIC5mb290ZXItZml4ZWQge1xuICAgICAgICByaWdodDogJHNpZGViYXItd2lkdGgtZXhwYW5kZWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNpZGViYXItd2lkdGgtZXhwYW5kZWQ7XG5cbiAgICAgIC5mb290ZXItZml4ZWQge1xuICAgICAgICBsZWZ0OiAkc2lkZWJhci13aWR0aC1leHBhbmRlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJsb2NrcXVvdGUgd2l0aCBhbGwgY2hpbGRyZW4gY2VudGVyZWQuXG4uYmxvY2txdW90ZS1jZW50ZXIge1xuICBib3JkZXItbGVmdDogMDtcbiAgbWFyZ2luOiA0MHB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgb3BhY2l0eTogLjY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktbGlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0b3A6IC0yMHB4O1xuICAgIGZvbnQtZmFtaWx5LWljb25zKCdcXGYxMGQnKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktbGlnaHQ7XG4gICAgYm90dG9tOiAtMjBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LWZhbWlseS1pY29ucygnXFxmMTBlJyk7XG4gIH1cblxuICBwLCBkaXYge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmdyb3VwLXBpY3R1cmUge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gIC5ncm91cC1waWN0dXJlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDNweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIH1cblxuICAuZ3JvdXAtcGljdHVyZS1jb2x1bW4ge1xuICAgIGZsZXg6IDE7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5wb3N0LWJvZHkgLmxhYmVsIHtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBwYWRkaW5nOiAwIDJweDtcblxuICBmb3IgJHR5cGUgaW4gJG5vdGUtdHlwZXMge1xuICAgICYueyR0eXBlfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGFiZWxbJHR5cGVdO1xuICAgIH1cbiAgfVxufVxuIiwiLnBvc3QtYm9keSAubGluay1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgLy8gaHR0cHM6Ly9jYW5pdXNlLmNvbS9tZG4tY3NzX3Byb3BlcnRpZXNfZ2FwX2dyaWRfY29udGV4dFxuICBncmlkLWdhcDogMS41cmVtO1xuICBnYXA6IDEuNXJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuXG4gIC5saW5rLWdyaWQtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IHNvbGlkICRncmV5LWxpZ2h0ZXI7XG4gICAgYm94LXNoYWRvdzogMXJlbSAxcmVtIC41cmVtIHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgIG1pbi1oZWlnaHQ6IDVyZW07XG4gICAgLy8gRml4IGlzc3VlICMzMFxuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3M7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGFuaW1hdGlvbjogbmV4dC1zaGFrZSAuNXM7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiAuNXJlbSAuNXJlbSAuMjVyZW0gcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSguMnJlbSwgLjJyZW0pO1xuICAgIH1cblxuICAgIC5saW5rLWdyaWQtaW1hZ2Uge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktbGlnaHRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogNXJlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAxcmVtIDAgNnJlbTtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBmb250LXNpemU6IC44ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XG4gICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG5leHQtc2hha2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB0LCAxcHQpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFwdCwgLTJwdCkgcm90YXRlKC0xZGVnKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTNwdCwgMHB0KSByb3RhdGUoMWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDNwdCwgMnB0KSByb3RhdGUoMGRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFwdCwgLTFwdCkgcm90YXRlKDFkZWcpO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB0LCAycHQpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHQsIDFwdCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHQsIDFwdCkgcm90YXRlKC0xZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFwdCwgLTFwdCkgcm90YXRlKDFkZWcpO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHQsIDJwdCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB0LCAtMnB0KSByb3RhdGUoLTFkZWcpO1xuICB9XG59XG4iLCJpZiAoaGV4by1jb25maWcoJ25vdGUuc3R5bGUnKSAhPSAnZGlzYWJsZWQnKSB7XG4gIC5wb3N0LWJvZHkgLm5vdGUge1xuICAgICRub3RlLWljb25zID0gaGV4by1jb25maWcoJ25vdGUuaWNvbnMnKTtcbiAgICAkbm90ZS1zdHlsZSA9IGhleG8tY29uZmlnKCdub3RlLnN0eWxlJyk7XG5cbiAgICBib3JkZXItcmFkaXVzOiAkbm90ZS1ib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnc2ltcGxlJykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XG4gICAgfVxuXG4gICAgaWYgKCRub3RlLXN0eWxlID09ICdtb2Rlcm4nKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGVzbW9rZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnZmxhdCcpIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGdhaW5zYm9ybywgNjUlKTtcbiAgICAgIGJvcmRlcjogaW5pdGlhbDtcbiAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJGdhaW5zYm9ybztcbiAgICB9XG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG91dGxpbmU6IDA7XG5cbiAgICAgIHAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGJvcmRlci1ib3R0b206IGluaXRpYWw7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGlmICgkbm90ZS1pY29ucykge1xuICAgICAgJjpub3QoLm5vLWljb24pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVlbTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgICAgbGVmdDogLjNlbTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDFlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgJHR5cGUgaW4gJG5vdGUtdHlwZXMge1xuICAgICAgJi57JHR5cGV9IHtcbiAgICAgICAgaWYgKCRub3RlLXN0eWxlID09ICdmbGF0Jykge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRub3RlLWJnWyR0eXBlXTtcbiAgICAgICAgICBpZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogbWl4KCRub3RlLWJnWyR0eXBlXSwgJGJvZHktYmctY29sb3ItZGFyaywgMTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJG5vdGUtc3R5bGUgPT0gJ21vZGVybicpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbm90ZS1tb2Rlcm4tYmdbJHR5cGVdO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5vdGUtbW9kZXJuLWJvcmRlclskdHlwZV07XG4gICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi10ZXh0WyR0eXBlXTtcblxuICAgICAgICAgIGE6bm90KC5idG4pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRub3RlLW1vZGVybi10ZXh0WyR0eXBlXTtcbiAgICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dFskdHlwZV07XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbm90ZS1tb2Rlcm4taG92ZXJbJHR5cGVdO1xuICAgICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyWyR0eXBlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG5vdGUtbW9kZXJuLWJnLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRub3RlLW1vZGVybi1ib3JkZXItZGFya1skdHlwZV07XG4gICAgICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dC1kYXJrWyR0eXBlXTtcblxuICAgICAgICAgICAgICBhOm5vdCguYnRuKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vdGUtbW9kZXJuLXRleHQtZGFya1skdHlwZV07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi10ZXh0LWRhcmtbJHR5cGVdO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbm90ZS1tb2Rlcm4taG92ZXItZGFya1skdHlwZV07XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgkbm90ZS1zdHlsZSAhPSAnbW9kZXJuJykge1xuICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkbm90ZS1ib3JkZXJbJHR5cGVdO1xuXG4gICAgICAgICAgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgICAgICAgIGNvbG9yOiAkbm90ZS10ZXh0WyR0eXBlXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJG5vdGUtaWNvbnMpIHtcbiAgICAgICAgICAmOm5vdCgubm8taWNvbik6OmJlZm9yZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseS1pY29ucygkbm90ZS1pY29uWyR0eXBlXSk7XG5cbiAgICAgICAgICAgIGlmICgkbm90ZS1zdHlsZSAhPSAnbW9kZXJuJykge1xuICAgICAgICAgICAgICBjb2xvcjogJG5vdGUtdGV4dFskdHlwZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucG9zdC1ib2R5IC50YWJzIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnBvc3QtYm9keSAudGFicywgLnRhYnMtY29tbWVudCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuXG4gIHVsLm5hdi10YWJzIHtcbiAgICBiYWNrZ3JvdW5kOiAoKCRzY2hlbWUgPT0gJ011c2UnKSBvciAoJHNjaGVtZSA9PSAnTWlzdCcpKSA/IHZhcigtLWJvZHktYmctY29sb3IpIDogdmFyKC0tY29udGVudC1iZy1jb2xvcik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgLy8gRml4IGlzc3VlICMzOThcbiAgICB6LWluZGV4OiAkemluZGV4LTA7XG5cbiAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgbGkudGFiIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1saWdodGVyO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogJHRiciAkdGJyIDAgMDtcbiAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgK21vYmlsZS1zbWFsbGVzdCgpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkdGJyO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGV4by1jb25maWcoJ3RhYnMudHJhbnNpdGlvbi50YWJzJykpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uLWVhc2Utb3V0O1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgIHBhZGRpbmc6IC4yNWVtIC43NWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgaVtjbGFzc149J2ZhJ10ge1xuICAgICAgICAgIHdpZHRoOiAoMThlbSAvIDE0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoZXhvLWNvbmZpZygndGFicy50cmFuc2l0aW9uLmxhYmVscycpKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uLWVhc2Utb3V0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRvcmFuZ2U7XG5cbiAgICAgICAgK21vYmlsZS1zbWFsbGVzdCgpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYi1jb250ZW50IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkdGJyICR0YnI7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHRicjtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLnRhYi1wYW5lIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjBweCAwO1xuXG4gICAgICAmOm5vdCguYWN0aXZlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkcGFnZS1udW1iZXItYmFzaWMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogLTFweCAxMHB4IDA7XG4gIHBhZGRpbmc6IDAgMTBweDtcblxuICArbW9iaWxlKCkge1xuICAgIG1hcmdpbjogMCA1cHg7XG4gIH1cbn1cblxuJHBhZ2UtbnVtYmVyLWN1cnJlbnQge1xuICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1hY3RpdmUtYmc7XG4gIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjtcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjtcbn1cblxuLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHBhZ2luYXRpb24tYm9yZGVyO1xuICBtYXJnaW46IDEyMHB4IDAgMDtcbiAgdGV4dC1hbGlnbjogJHNjaGVtZS10ZXh0LWFsaWduO1xuXG4gIC5wcmV2LCAubmV4dCwgLnBhZ2UtbnVtYmVyIHtcbiAgICBAZXh0ZW5kICRwYWdlLW51bWJlci1iYXNpYztcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcGFnaW5hdGlvbi1saW5rLWJvcmRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBhZ2luYXRpb24tbGluay1ob3Zlci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgK21vYmlsZSgpIHtcbiAgICBib3JkZXItdG9wOiAwO1xuXG4gICAgLnByZXYsIC5uZXh0LCAucGFnZS1udW1iZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwYWdpbmF0aW9uLWxpbmstYm9yZGVyO1xuICAgICAgYm9yZGVyLXRvcDogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwYWdpbmF0aW9uLWxpbmstaG92ZXItYm9yZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zcGFjZSB7XG4gICAgQGV4dGVuZCAkcGFnZS1udW1iZXItYmFzaWM7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAucGFnZS1udW1iZXIuY3VycmVudCB7XG4gICAgQGV4dGVuZCAkcGFnZS1udW1iZXItY3VycmVudDtcbiAgfVxufVxuIiwiLmNvbW1lbnRzIHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNvbW1lbnQtYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDFlbSAwO1xuXG4gIC5jb21tZW50LWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAuMWVtIC4yZW07XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1iZyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uY29tbWVudC1wb3NpdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi50YWJzLWNvbW1lbnQge1xuICBtYXJnaW4tdG9wOiA0ZW07XG4gIHBhZGRpbmctdG9wOiAwO1xuXG4gIC5jb21tZW50cyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuIiwiLy8gSGVhZGVyIFNlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaGVhZGJhbmQge1xuICBiYWNrZ3JvdW5kOiAkaGVhZGJhbmQtYmc7XG4gIGhlaWdodDogJGhlYWRiYW5kLWhlaWdodDtcblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zaXRlLWJyYW5kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi51c2UtbW90aW9uIHtcbiAgLmNvbHVtbiwgLnNpdGUtYnJhbmQtY29udGFpbmVyIC50b2dnbGUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGltcG9ydCAnc2l0ZS1tZXRhJztcbkBpbXBvcnQgJ3NpdGUtbmF2JztcbkBpbXBvcnQgJ21lbnUnO1xuXG5AaW1wb3J0ICdib29rbWFyayc7XG5AaW1wb3J0ICdnaXRodWItYmFubmVyJztcbiIsIi5zaXRlLW1ldGEge1xuICBmbGV4LWdyb3c6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICArbW9iaWxlKCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uY3VzdG9tLWxvZ28taW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmJyYW5kIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgY29sb3I6IHZhcigtLWJyYW5kLWNvbG9yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkYnJhbmQtcGFkZGluZztcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tYnJhbmQtaG92ZXItY29sb3IpO1xuICB9XG59XG5cbi5zaXRlLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1sb2dvO1xuICBmb250LXNpemU6ICRmb250LXNpemUtdGl0bGU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNpdGUtc3VidGl0bGUge1xuICBjb2xvcjogJHN1YnRpdGxlLWNvbG9yO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc3VidGl0bGU7XG4gIG1hcmdpbjogJHNpdGUtc3VidGl0bGUtbWFyZ2luO1xufVxuXG4udXNlLW1vdGlvbiB7XG4gIC5zaXRlLXRpdGxlLCAuc2l0ZS1zdWJ0aXRsZSwgLmN1c3RvbS1sb2dvLWltYWdlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMHB4O1xuICB9XG59XG4iLCIuc2l0ZS1uYXYtdG9nZ2xlLCAuc2l0ZS1uYXYtcmlnaHQge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICttb2JpbGUoKSB7XG4gICAgZmxleC1jb2x1bW4oKTtcbiAgfVxuXG4gIC50b2dnbGUge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHdpZHRoOiAyMnB4O1xuXG4gICAgLnRvZ2dsZS1saW5lIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRleHQtY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1uYXYge1xuICArbW9iaWxlKCkge1xuICAgIHNpdGUtbmF2LWhpZGUtYnktZGVmYXVsdCgpO1xuICB9XG59XG4iLCIvLyBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm1lbnUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDFlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAxMHB4O1xuXG4gICttb2JpbGUoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICYubWVudS1pdGVtLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uLWVhc2U7XG5cbiAgICAmOmhvdmVyLCAmLm1lbnUtaXRlbS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWVudS1pdGVtLWJnLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cblxuICAuYmFkZ2Uge1xuICAgIGJhZGdlKCk7XG4gIH1cbn1cblxuaWYgKGhleG8tY29uZmlnKCdtb3Rpb24udHJhbnNpdGlvbi5tZW51X2l0ZW0nKSkge1xuICAudXNlLW1vdGlvbiAubWVudS1pdGVtIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygnZ2l0aHViX2Jhbm5lci5lbmFibGUnKSkge1xuICBAa2V5ZnJhbWVzIG9jdG9jYXQtd2F2ZSB7XG4gICAgMCUsIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuXG4gICAgMjAlLCA2MCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTI1ZGVnKTtcbiAgICB9XG5cbiAgICA0MCUsIDgwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7XG4gICAgfVxuICB9XG5cbiAgLmdpdGh1Yi1jb3JuZXIge1xuICAgIDpob3ZlciAub2N0by1hcm0ge1xuICAgICAgYW5pbWF0aW9uOiBvY3RvY2F0LXdhdmUgNTYwbXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZpbGw6IHZhcigtLXRoZW1lLWNvbG9yKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgei1pbmRleDogJHppbmRleC0wO1xuICAgIH1cblxuICAgICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICAgaWYgKGhleG8tY29uZmlnKCdsb2NhbF9zZWFyY2guZW5hYmxlJykgb3IgaGV4by1jb25maWcoJ2FsZ29saWFfc2VhcmNoLmVuYWJsZScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGlmICgoJHNjaGVtZSA9PSAnUGlzY2VzJykgb3IgKCRzY2hlbWUgPT0gJ0dlbWluaScpKSB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yKTtcbiAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ2l0aHViLWNvcm5lcjpob3ZlciAub2N0by1hcm0ge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5naXRodWItY29ybmVyIC5vY3RvLWFybSB7XG4gICAgICAgIGFuaW1hdGlvbjogb2N0b2NhdC13YXZlIDU2MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgkc2NoZW1lID09ICdNaXN0Jykge1xuICAgICAgK21vYmlsZSgpIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB0b3A6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIitzaWRlYmFyKCkge1xuICBpZiAoJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCA9PSAncmlnaHQnKSB7XG4gICAgLnNpZGViYXIge1xuICAgICAgcmlnaHQ6IDAgLSAkc2lkZWJhci13aWR0aC1leHBhbmRlZDtcblxuICAgICAgLnNpZGViYXItYWN0aXZlICYge1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLnNpZGViYXIge1xuICAgICAgbGVmdDogMCAtICRzaWRlYmFyLXdpZHRoLWV4cGFuZGVkO1xuXG4gICAgICAuc2lkZWJhci1hY3RpdmUgJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXIge1xuICAgIGJhY2tncm91bmQ6ICRibGFjay1kZWVwO1xuICAgIGJvdHRvbTogMDtcbiAgICBpZiAobm90IGhleG8tY29uZmlnKCdiYWNrMnRvcC5zaWRlYmFyJykpIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDZweCBibGFjaztcbiAgICB9XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQsIHJpZ2h0O1xuICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aC1leHBhbmRlZDtcbiAgICB6LWluZGV4OiAkemluZGV4LTI7XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRibGFjay1saWdodDtcbiAgICAgIGNvbG9yOiAkZ3JleS1kYXJrO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGdhaW5zYm9ybztcbiAgICAgICAgY29sb3I6ICRnYWluc2Jvcm87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxpbmtzLW9mLWF1dGhvciB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrLWxpZ2h0O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIGlmIChoZXhvLWNvbmZpZygnc29jaWFsX2ljb25zLnRyYW5zaXRpb24nKSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKHJhbmRvbS1jb2xvcigwLCAyNTUpIC0gNTAlLCByYW5kb20tY29sb3IoMCwgMjU1KSAtIDUwJSwgcmFuZG9tLWNvbG9yKDAsIDI1NSkgLSA1MCUpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgIHJvdW5kLWljb24oNHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGlua3Mtb2YtYmxvZ3JvbGwtaXRlbSB7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gIH1cblxuICAucG9wdWxhci1wb3N0cyAucG9wdWxhci1wb3N0cy1pdGVtIC5wb3B1bGFyLXBvc3RzLWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cblxuICAuc2lkZWJhci1kaW1tZXIge1xuICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC40cywgb3BhY2l0eSAuNHM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtMTtcblxuICAgIC5zaWRlYmFyLWFjdGl2ZSAmIHtcbiAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cblxuLnNpZGViYXItaW5uZXIge1xuICBjb2xvcjogJGdyZXktZGFyaztcbiAgcGFkZGluZzogJHNpZGViYXItcGFkZGluZyAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXgtY29sdW1uKCk7XG59XG5cbkBpbXBvcnQgJ3NpZGViYXItdG9nZ2xlJztcbkBpbXBvcnQgJ3NpZGViYXItbmF2JztcbkBpbXBvcnQgJ3NpZGViYXItdG9jJztcbkBpbXBvcnQgJ3NpZGViYXItYXV0aG9yJztcbkBpbXBvcnQgJ3NpdGUtc3RhdGUnO1xuQGltcG9ydCAnc2lkZWJhci1idXR0b24nO1xuQGltcG9ydCAnc2lkZWJhci1hdXRob3ItbGlua3MnO1xuQGltcG9ydCAnc2lkZWJhci1jb3B5cmlnaHQnO1xuQGltcG9ydCAnc2lkZWJhci1ibG9ncm9sbCc7XG5AaW1wb3J0ICdyZWxhdGVkLXBvc3RzJztcbiIsIi5zaWRlYmFyLXRvZ2dsZSB7XG4gIGJvdHRvbTogJGIydC1wb3NpdGlvbi1ib3R0b20tb24gKyAkc2lkZWJhci10b2dnbGUtc2l6ZSArIDVweDtcbiAgaGVpZ2h0OiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgcGFkZGluZzogJHNpZGViYXItdG9nZ2xlLXBhZGRpbmc7XG4gIHdpZHRoOiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgc2lkZWJhci10b2dnbGUoKTtcbn1cblxuLnNpZGViYXItdG9nZ2xlOmhvdmVyIC50b2dnbGUtbGluZSB7XG4gIGJhY2tncm91bmQ6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbn1cblxuQG1lZGlhIChhbnktaG92ZXI6IGhvdmVyKSB7XG4gIGJvZHk6bm90KC5zaWRlYmFyLWFjdGl2ZSkgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgICB0b2dnbGUtYXJyb3coJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCk7XG4gIH1cbn1cblxuLnNpZGViYXItYWN0aXZlIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIHRvZ2dsZS1jbG9zZSgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50KTtcbn1cbiIsIi8vIFNpZGViYXIgTmF2aWdhdGlvblxuLnNpZGViYXItbmF2IHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLnNpZGViYXItbmF2LWFjdGl2ZSAmIHtcbiAgICBoZWlnaHQ6IFwiY2FsYyglc2VtICsgMXB4KVwiICUgJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuICAgIHZpc2liaWxpdHk6IHVuc2V0O1xuICB9XG5cbiAgbGkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHNpZGViYXItbmF2LWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3JkZXItYm90dG9tLWNvbG9yLCBjb2xvcjtcblxuICAgICYuc2lkZWJhci1uYXYtb3ZlcnZpZXcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHNpZGViYXItbmF2LWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uc2lkZWJhci10b2MtYWN0aXZlIC5zaWRlYmFyLW5hdi10b2MsIC5zaWRlYmFyLW92ZXJ2aWV3LWFjdGl2ZSAuc2lkZWJhci1uYXYtb3ZlcnZpZXcge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG4gIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG4gIH1cbn1cblxuLy8gRm9yIFRPQy9PdmVydmlldyBzY3JvbGxpbmdcbi5zaWRlYmFyLXBhbmVsLWNvbnRhaW5lciB7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZy10b3AgJHRyYW5zaXRpb24tZWFzZTtcblxuICAuc2lkZWJhci1uYXYtYWN0aXZlICYge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG59XG5cbi5zaWRlYmFyLXBhbmVsIHtcbiAgYW5pbWF0aW9uOiBkZWFjdGl2YXRlLXNpZGViYXItcGFuZWwgJHRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gIGdyaWQtYXJlYTogMSAvIDE7XG4gIGhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSwgdmlzaWJpbGl0eTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIEFwcGx5IHRyYW5zZm9ybSB0byBib3RoIHBhbmVscyB3aGVuIHNpZGViYXIgbmF2IGlzIGFjdGl2ZSxcbiAgLy8gdG8gdGhlIFRPQyBwYW5lbCB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIE92ZXJ2aWV3IGFuZCBUT0MgcmVnYXJkbGVzcyBvZlxuICAvLyB3aGV0aGVyIHRoZSBzaWRlYmFyIG5hdiBpcyBhY3RpdmVcbiAgLnNpZGViYXItbmF2LWFjdGl2ZSAmLFxuICAuc2lkZWJhci1vdmVydmlldy1hY3RpdmUgJi5wb3N0LXRvYy13cmFwIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuICB9XG5cbiAgLy8gRGVsYXkgVE9DIHRyYW5zZm9ybSB0cmFuc2l0aW9uIHdoZW4gc3dpdGNoaW5nIGZyb20gVE9DIHRvIE92ZXJ2aWV3IGFuZFxuICAvLyBkZWFjdGl2YXRpbmcgdGhlIHNpZGViYXIgbmF2IGF0IHRoZSBzYW1lIHRpbWUsIHRvIHByZXZlbnQgdGhlIFRPQyBwYW5lbFxuICAvLyBmcm9tIG1vdmluZyB0b28gZmFzdFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbmV4dC10aGVtZS9oZXhvLXRoZW1lLW5leHQvcHVsbC8zMjMjaXNzdWVjb21tZW50LTE0MjA3ODA5NjVcbiAgLnNpZGViYXItb3ZlcnZpZXctYWN0aXZlOm5vdCguc2lkZWJhci1uYXYtYWN0aXZlKSAmLnBvc3QtdG9jLXdyYXAge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAkdHJhbnNpdGlvbi1kdXJhdGlvbiwgMHM7XG4gIH1cblxuICAuc2lkZWJhci1vdmVydmlldy1hY3RpdmUgJi5zaXRlLW92ZXJ2aWV3LXdyYXAsXG4gIC5zaWRlYmFyLXRvYy1hY3RpdmUgJi5wb3N0LXRvYy13cmFwIHtcbiAgICBhbmltYXRpb24tbmFtZTogYWN0aXZhdGUtc2lkZWJhci1wYW5lbDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogdW5zZXQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIC8vIFRoZSB2aXNpYmlsaXR5IGRlbGF5IGlzIGludGVudGlvbmFsbHkgc2V0IHRvIDBzIHRvIGFjY29tbW9kYXRlXG4gICAgLy8gdGhlIHZpc2liaWxpdHkgY2hhbmdlIG9uIGluaXRpYWwgcGFnZSBsb2FkLlxuICAgIHRyYW5zaXRpb24tZGVsYXk6ICR0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdHJhbnNpdGlvbi1kdXJhdGlvbiwgMHM7XG4gICAgdmlzaWJpbGl0eTogdW5zZXQ7XG4gIH1cblxuICAmLnNpdGUtb3ZlcnZpZXctd3JhcCB7XG4gICAgLy8gRmxleGJveCBsYXlvdXQgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVvcmRlciB0aGUgY2hpbGRcbiAgICAvLyBlbGVtZW50cyBvZiAuc2l0ZS1vdmVydmlldy13cmFwIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4gICAgZmxleC1jb2x1bW4oKTtcbiAgICBnYXA6IDEwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvLyBUT0RPOiBPcHRpbWl6ZSB0aGUgZHVwbGljYXRlIHdpdGggZmxleC1jb2x1bW4oKVxuICB9XG59XG5cbkBrZXlmcmFtZXMgZGVhY3RpdmF0ZS1zaWRlYmFyLXBhbmVsIHtcbiAgZnJvbSB7XG4gICAgaGVpZ2h0OiB2YXIoLS1pbmFjdGl2ZS1wYW5lbC1oZWlnaHQsIDApO1xuICB9XG4gIHRvIHtcbiAgICBoZWlnaHQ6IHZhcigtLWFjdGl2ZS1wYW5lbC1oZWlnaHQsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYWN0aXZhdGUtc2lkZWJhci1wYW5lbCB7XG4gIGZyb20ge1xuICAgIGhlaWdodDogdmFyKC0taW5hY3RpdmUtcGFuZWwtaGVpZ2h0LCBhdXRvKTtcbiAgfVxuICB0byB7XG4gICAgaGVpZ2h0OiB2YXIoLS1hY3RpdmUtcGFuZWwtaGVpZ2h0LCBhdXRvKTtcbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCd0b2MuZW5hYmxlJykpIHtcbiAgLnBvc3QtdG9jIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG5cbiAgICBvbCB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAycHggMCAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIH1cblxuICAgICAgPiBvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYtaXRlbSB7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICBpZiAobm90IGhleG8tY29uZmlnKCd0b2Mud3JhcCcpKSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdiB7XG4gICAgICBpZiAobm90IGhleG8tY29uZmlnKCd0b2MuZXhwYW5kX2FsbCcpKSB7XG4gICAgICAgIC5uYXYtY2hpbGQge1xuICAgICAgICAgIC0taGVpZ2h0OiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCBvcGFjaXR5LCB2aXNpYmlsaXR5O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGl2ZSA+IC5uYXYtY2hpbGQge1xuICAgICAgICAgIGhlaWdodDogdmFyKC0taGVpZ2h0LCBhdXRvKTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHZpc2liaWxpdHk6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgICAgICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlLWN1cnJlbnQgPiBhIHtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc2l0ZS1hdXRob3ItaW1hZ2Uge1xuICBib3JkZXI6ICRzaXRlLWF1dGhvci1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgJHNpdGUtYXV0aG9yLWltYWdlLWJvcmRlci1jb2xvcjtcbiAgbWF4LXdpZHRoOiAkc2l0ZS1hdXRob3ItaW1hZ2Utd2lkdGg7XG4gIHBhZGRpbmc6IDJweDtcblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3VuZGVkJykpIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3RhdGVkJykpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1hdXRob3ItbmFtZSB7XG4gIGNvbG9yOiAkc2l0ZS1hdXRob3ItbmFtZS1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzaXRlLWF1dGhvci1uYW1lLXdlaWdodDtcbiAgbWFyZ2luOiAkc2l0ZS1hdXRob3ItbmFtZS1tYXJnaW47XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICRzaXRlLWRlc2NyaXB0aW9uLWNvbG9yO1xuICBmb250LXNpemU6ICRzaXRlLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLXRvcDogJHNpdGUtZGVzY3JpcHRpb24tbWFyZ2luLXRvcDtcbn1cbiIsImlmIChoZXhvLWNvbmZpZygnc2l0ZV9zdGF0ZScpKSB7XG4gIC5zaXRlLXN0YXRlIHtcbiAgICBmbGV4LXdyYXAoKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG5cbiAgLnNpdGUtc3RhdGUtaXRlbSB7XG4gICAgLy8gRml4IGlzc3VlICMxMDNcbiAgICAvLyBUaGUgY2xpY2sgYXJlYSBvZiB0aGUgbGluayBiZWNvbWVzIHNtYWxsZXJcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuc2l0ZS1zdGF0ZS1pdGVtLWNvdW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRzaXRlLXN0YXRlLWl0ZW0tY291bnQtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAuc2l0ZS1zdGF0ZS1pdGVtLW5hbWUge1xuICAgIGNvbG9yOiAkc2l0ZS1zdGF0ZS1pdGVtLW5hbWUtY29sb3I7XG4gICAgZm9udC1zaXplOiAkc2l0ZS1zdGF0ZS1pdGVtLW5hbWUtZm9udC1zaXplO1xuICB9XG59XG4iLCIuc2lkZWJhciAuc2lkZWJhci1idXR0b24ge1xuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBidXR0b24oJG9yYW5nZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5saW5rcy1vZi1hdXRob3Ige1xuICBhIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgfVxuXG4gIGlmIChub3QgaGV4by1jb25maWcoJ3NvY2lhbF9pY29ucy5pY29uc19vbmx5JykpIHtcbiAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5jYy1saWNlbnNlIHtcbiAgLmNjLW9wYWNpdHkge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgb3BhY2l0eTogLjc7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IC45O1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIubGlua3Mtb2YtYmxvZ3JvbGwge1xuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbn1cblxuLmxpbmtzLW9mLWJsb2dyb2xsLXRpdGxlIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubGlua3Mtb2YtYmxvZ3JvbGwtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGdhcDogNXB4O1xuICBtYXJnaW46IDVweCAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZsZXgtd3JhcCgpO1xuXG4gIGlmIChoZXhvLWNvbmZpZygnbGlua3Nfc2V0dGluZ3MubGF5b3V0JykgPT0gJ2Jsb2NrJykge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLmxpbmtzLW9mLWJsb2dyb2xsLWl0ZW0ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgYSB7XG4gICAgc2lkZWJhci1pbmxpbmUtbGlua3MtaXRlbSgpO1xuICB9XG59XG4iLCIvLyBGb290ZXIgU2VjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5mb290ZXIge1xuICBjb2xvcjogJGdyZXktZGFyaztcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQsIHJpZ2h0O1xuXG4gICYuZm9vdGVyLWZpeGVkIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuLy8gRmxleGJveCBsYXlvdXQgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVvcmRlciB0aGUgY2hpbGRcbi8vIGVsZW1lbnRzIG9mIC5mb290ZXItaW5uZXIgdGhyb3VnaCB0aGUgYG9yZGVyYCBDU1MgcHJvcGVydHlcbi5mb290ZXItaW5uZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0ZXh0LWFsaWduOiAkc2NoZW1lLXRleHQtYWxpZ247XG4gIGZsZXgtY29sdW1uKCk7XG4gIG1haW4tY29udGFpbmVyKCk7XG59XG5cbi51c2UtbW90aW9uIHtcbiAgLmZvb3RlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGljb24tYW5pbWF0ZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgMTAlLCAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjkpO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cblxuICA1MCUsIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG5cbi5sYW5ndWFnZXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5sYW5nLXNlbGVjdC1sYWJlbCBzcGFuIHtcbiAgICBtYXJnaW46IDAgLjVlbTtcbiAgfVxuXG4gIC5sYW5nLXNlbGVjdCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi53aXRoLWxvdmUge1xuICBjb2xvcjogY29udmVydChoZXhvLWNvbmZpZygnZm9vdGVyLmljb24uY29sb3InKSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDVweDtcblxuICBpZiAoaGV4by1jb25maWcoJ2Zvb3Rlci5pY29uLmFuaW1hdGVkJykpIHtcbiAgICBhbmltYXRpb246IGljb24tYW5pbWF0ZSAxLjMzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2Zvb3Rlci5iZWlhbi5lbmFibGUnKSBhbmQgaGV4by1jb25maWcoJ2Zvb3Rlci5iZWlhbi5nb25nYW5faWNvbl91cmwnKSkge1xuICAuYmVpYW4gaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbmlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQuZW5hYmxlJykpIHtcbiAgLmJ1c3VhbnppLWNvdW50IHtcbiAgICBpZiAoaGV4by1jb25maWcoJ2J1c3VhbnppX2NvdW50LnRvdGFsX3Zpc2l0b3JzJykpIHtcbiAgICAgICNidXN1YW56aV9jb250YWluZXJfc2l0ZV91diB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC50b3RhbF92aWV3cycpKSB7XG4gICAgICAjYnVzdWFuemlfY29udGFpbmVyX3NpdGVfcHYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdiYWNrMnRvcC5lbmFibGUnKSkge1xuICAuYmFjay10by10b3Age1xuICAgIGZvbnQtc2l6ZTogJGIydC1mb250LXNpemU7XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgaWYgKG5vdCBoZXhvLWNvbmZpZygnYmFjazJ0b3Auc2Nyb2xscGVyY2VudCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAkc2lkZWJhci10b2dnbGUtc2l6ZTtcbiAgICB9XG5cbiAgICBpZiAoaGV4by1jb25maWcoJ2JhY2sydG9wLnNpZGViYXInKSkge1xuICAgICAgbWFyZ2luOiAyMHB4IC0gJHNpZGViYXItb2Zmc2V0IC0xMHB4IC0yMHB4O1xuICAgICAgLy8gRklYTUU6IG9wYWNpdHkgb3ZlcnJpZGUgYnkgbW90aW9uXG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICAgICAmLmJhY2stdG8tdG9wLW9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAkYjJ0LW9wYWNpdHk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogJGIydC1vcGFjaXR5LWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3R0b206ICRiMnQtcG9zaXRpb24tYm90dG9tO1xuICAgICAgY29sb3I6ICRiMnQtY29sb3I7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgaGVpZ2h0OiAkc2lkZWJhci10b2dnbGUtc2l6ZTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gICAgICAvLyBPdmVycmlkZSBpbiBQaXNjZXNcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbTtcbiAgICAgIHNpZGViYXItdG9nZ2xlKCk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgICAgfVxuXG4gICAgICAmLmJhY2stdG8tdG9wLW9uIHtcbiAgICAgICAgYm90dG9tOiAkYjJ0LXBvc2l0aW9uLWJvdHRvbS1vbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5ydGwge1xuICAmLnBvc3QtYm9keSB7XG4gICAgcCwgYSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgbGksIHVsLCBvbCB7XG4gICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgIGZvbnQtZmFtaWx5OiBVS0lKIEVrcmFuO1xuICAgIH1cbiAgfVxuXG4gICYucG9zdC10aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IFVLSUogRWtyYW47XG4gIH1cbn1cblxuLnBvc3QtYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgdGV4dC1hbGlnbjogJHNjaGVtZS10ZXh0LWFsaWduO1xufVxuXG4udXNlLW1vdGlvbiB7XG4gIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24ucG9zdF9ibG9jaycpKSB7XG4gICAgLnBvc3QtYmxvY2ssIC5wYWdpbmF0aW9uLCAuY29tbWVudHMge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24ucG9zdF9oZWFkZXInKSkge1xuICAgIC5wb3N0LWhlYWRlciB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgaWYgKGhleG8tY29uZmlnKCdtb3Rpb24udHJhbnNpdGlvbi5wb3N0X2JvZHknKSkge1xuICAgIC5wb3N0LWJvZHkge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24uY29sbF9oZWFkZXInKSkge1xuICAgIC5jb2xsZWN0aW9uLWhlYWRlciB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbkBpbXBvcnQgJ3Bvc3QtY29sbGFwc2UnO1xuQGltcG9ydCAncG9zdC1ib2R5JztcbkBpbXBvcnQgJ3Bvc3QtZ2FsbGVyeSc7XG5AaW1wb3J0ICdwb3N0LWhlYWRlcic7XG5AaW1wb3J0ICdwb3N0LW5hdic7XG5AaW1wb3J0ICdwb3N0LWZvb3Rlcic7XG5AaW1wb3J0ICdwb3N0LXdpZGdldHMnO1xuQGltcG9ydCAncG9zdC1yZXdhcmQnO1xuQGltcG9ydCAncG9zdC1mb2xsb3dtZSc7XG4iLCIucG9zdHMtY29sbGFwc2UgLnBvc3QtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206ICRwb3N0cy1jb2xsYXBzZS1tYXJnaW47XG4gIG1hcmdpbi1sZWZ0OiAkcG9zdHMtY29sbGFwc2UtbWFyZ2luO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBtYXJnaW4tbGVmdDogJHBvc3RzLWNvbGxhcHNlLW1hcmdpbi1tb2JpbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAkcG9zdHMtY29sbGFwc2UtbWFyZ2luLW1vYmlsZTtcbiAgfVxuXG4gIC5jb2xsZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRncmV5LWRhcms7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNnB4O1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcm91bmQtaWNvbigxMHB4KTtcbiAgICB9XG4gIH1cblxuICAuY29sbGVjdGlvbi15ZWFyIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2VzdDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IDYwcHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuY29sbGVjdGlvbi15ZWFyLWNvdW50IHtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICAgIGJhZGdlKCk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRncmV5O1xuICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByb3VuZC1pY29uKDhweCk7XG4gICAgfVxuICB9XG5cbiAgLmNvbGxlY3Rpb24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcblxuICAgIHNtYWxsIHtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnBvc3QtaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRncmV5LWxpZ2h0O1xuICAgIC8vIDJweCBpcyBlcXVhbCB0byBoYWxmIHRoZSB3aWR0aCBvZiAucG9zdHMtY29sbGFwc2U6OmJlZm9yZVxuICAgIG1hcmdpbjogMzBweCAycHggMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRncmV5O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICBsZWZ0OiAtNnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkZm9udC1zaXplLXNtYWxsZXN0O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgcm91bmQtaWNvbig2cHgpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGdyZXktZGltO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stZGVlcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucG9zdC1tZXRhLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cblxuICAucG9zdC10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICAgIH1cblxuICAgIC5mYSB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlc21va2U7XG4gICAgY29udGVudDogJyAnO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gVG8gZG86IDEuMjVlbSBpcyBpbmFjY3VyYXRlIHdoZW4gLmNvbGxlY3Rpb24tdGl0bGUgaGFzIGxpbmUgYnJlYWtzIG9uIG1vYmlsZVxuICAgIHRvcDogMS4yNWVtO1xuICAgIHdpZHRoOiA0cHg7XG4gIH1cbn1cbiIsIi5wb3N0LWJvZHkge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXBvc3RzO1xuICB3b3JkLXdyYXAoKTtcblxuICArZGVza3RvcC1sYXJnZSgpIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gIH1cblxuICArZGVza3RvcCgpIHtcbiAgICB0ZXh0LWFsaWduOiB1bnF1b3RlKGhleG8tY29uZmlnKCd0ZXh0X2FsaWduLmRlc2t0b3AnKSk7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICB0ZXh0LWFsaWduOiB1bnF1b3RlKGhleG8tY29uZmlnKCd0ZXh0X2FsaWduLm1vYmlsZScpKTtcbiAgfVxuXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIC8vIFN1cHBvcnRlZCBwbHVnaW5zOiBoZXhvLXJlbmRlcmVyLW1hcmtkb3duLWl0IGhleG8tcmVuZGVyZXItbWFya2VkXG4gICAgLmhlYWRlci1hbmNob3IsIC5oZWFkZXJsaW5rIHtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZm9udC1mYW1pbHktaWNvbnMoJ1xcZjBjMScpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmhlYWRlci1hbmNob3IsIC5oZWFkZXJsaW5rIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5leHR1cmwgLmZhIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgfVxuXG4gIGZpZ3VyZTpub3QoLmhpZ2hsaWdodCkge1xuICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGV4b2pzL2hleG8tcmVuZGVyZXItbWFya2VkL3B1bGwvMjY0XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZXh0LXRoZW1lL2hleG8tbmV4dC1leGlmXG4gIGZpZ3VyZTpub3QoLmhpZ2hsaWdodCkgZmlnY2FwdGlvbiB7XG4gICAgY29sb3I6ICRncmV5LWRhcms7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogLTE1cHggYXV0byAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIGlmcmFtZSwgaW1nLCB2aWRlbywgZW1iZWQge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICAudmlkZW8tY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiA3NSU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaWZyYW1lLCBvYmplY3QsIGVtYmVkIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5wb3N0LWdhbGxlcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAyMDBweDtcblxuICAucG9zdC1nYWxsZXJ5LWltYWdlIHtcbiAgICBmbGV4OiAxO1xuXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBjbGlwLXBhdGg6IHBvbHlnb24oNDBweCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAvLyBPdmVycmlkZSBkYXJrbW9kZSBpbWFnZSBvcGFjaXR5LlxuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4ucG9zdHMtZXhwYW5kIC5wb3N0LWdhbGxlcnkge1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuXG4ucG9zdHMtY29sbGFwc2UgLnBvc3QtZ2FsbGVyeSB7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuIiwiLnBvc3RzLWV4cGFuZCAucG9zdC1oZWFkZXIge1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBvc3RzLWV4cGFuZCAucG9zdC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZXN0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IGluaXRpYWw7XG4gIHdvcmQtd3JhcCgpO1xuXG4gIGlmIChoZXhvLWNvbmZpZygncG9zdF9lZGl0LmVuYWJsZScpKSB7XG4gICAgLnBvc3QtZWRpdC1saW5rIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2VyO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjJlbTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLWVhc2UtaW47XG5cbiAgICAgICttb2JpbGUtc21hbGwoKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBvc3RzLWV4cGFuZCAucG9zdC10aXRsZS1saW5rIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICAvLyBNYWtlIHVuZGVybGluZSBwb3NpdGlvbiBjb3JyZWN0XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLy8gRml4IGlzc3VlICM3MzZcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgLy8gRml4IGlzc3VlICM3NVxuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbi1lYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuXG4gIC5mYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLnBvc3Qtc3RpY2t5LWZsYWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8vIEZpeCBpc3N1ZSAjODAgIzE0MFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xufVxuXG4ucG9zdHMtZXhwYW5kIC5wb3N0LW1ldGEtY29udGFpbmVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcG9zdHM7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuXG4gIC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgdGltZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JleS1kYXJrO1xuICB9XG59XG5cbi8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4vLyBlbGVtZW50cyBvZiAucG9zdC1tZXRhIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4ucG9zdC1tZXRhIHtcbiAgZmxleC13cmFwKCk7XG59XG5cbi8vIC5wb3N0LW1ldGEtaXRlbSBleGlzdHMgaW4gLnBvc3QtbWV0YSBhbmQgZm9vdGVyXG46bm90KC5wb3N0LW1ldGEtYnJlYWspICsgLnBvc3QtbWV0YS1pdGVtOjpiZWZvcmUge1xuICBjb250ZW50OiAnfCc7XG4gIG1hcmdpbjogMCAuNWVtO1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0taWNvbiB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0tdGV4dCB7XG4gIGlmIChub3QgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5pdGVtX3RleHQnKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5wb3N0LW1ldGEtYnJlYWsge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG59XG5cbmlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQuZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC5wb3N0X3ZpZXdzJykpIHtcbiAgI2J1c3VhbnppX2NvbnRhaW5lcl9wYWdlX3B2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIucG9zdC1uYXYge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZzogMTBweCA1cHggMDtcbn1cblxuLnBvc3QtbmF2LWl0ZW0ge1xuICBmbGV4OiAxO1xuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDJweDtcbiAgICB9XG4gIH1cblxuICAuZmEge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5mYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmZhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGbGV4Ym94IGxheW91dCBtYWtlcyBpdCBwb3NzaWJsZSB0byByZW9yZGVyIHRoZSBjaGlsZFxuLy8gZWxlbWVudHMgb2YgLnBvc3QtZm9vdGVyIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4vLyBGaXggaXNzdWUgIzE2XG4vLyBUbyBkbzogdXNlIGBnYXBgIGluc3RlYWQgb2YgYG1hcmdpbmBcbi8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tL2ZsZXhib3gtZ2FwXG4ucG9zdC1mb290ZXIge1xuICBmbGV4LWNvbHVtbigpO1xufVxuXG4ucG9zdC1lb2Yge1xuICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogJHBvc3QtZW9mLW1hcmdpbi10b3AgYXV0byAkcG9zdC1lb2YtbWFyZ2luLWJvdHRvbTtcbiAgd2lkdGg6IDglO1xuXG4gIC5wb3N0LWJsb2NrOmxhc3Qtb2YtdHlwZSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmlmIChoZXhvLWNvbmZpZygnY3JlYXRpdmVfY29tbW9ucy5wb3N0JykpIHtcbiAgLnBvc3QtY29weXJpZ2h0IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc3QtY2FyZCgpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcZjI1ZSc7XG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA3IEJyYW5kcyc7XG4gICAgICBmb250LXNpemU6IDIwMHB4O1xuICAgICAgb3BhY2l0eTogJHdhdGVybWFyay1vcGFjaXR5O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC01MHB4O1xuICAgICAgdG9wOiAtMTUwcHg7XG4gICAgfVxuICB9XG59XG5cbi5wb3N0LXRhZ3Mge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICB0ZXh0LWFsaWduOiAkc2NoZW1lLXRleHQtYWxpZ247XG5cbiAgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVyO1xuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5zb2NpYWwtbGlrZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZy10b3A6IDFlbTtcbiAgZmxleC13cmFwKCk7XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxufVxuIiwiLnJld2FyZC1jb250YWluZXIge1xuICBtYXJnaW46ICRwb3N0LWNhcmQtbWFyZ2luO1xuICBwYWRkaW5nOiAxZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgYnV0dG9uKCRzaWRlYmFyLWhpZ2hsaWdodCk7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgfVxufVxuXG4ucG9zdC1yZXdhcmQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nLXRvcDogMjBweDtcblxuICAmLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgaWYgKGhleG8tY29uZmlnKCdyZXdhcmRfc2V0dGluZ3MuYW5pbWF0aW9uJykpIHtcbiAgICAgICY6aG92ZXIgc3BhbiB7XG4gICAgICAgIGFuaW1hdGlvbjogbmV4dC1yb2xsIC4xcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICAgIC8vIFRoZSBhbmltYXRpb24gbWF5IGFmZmVjdCA6aG92ZXIgb2YgaW1nIGluIGRhcmsgbW9kZVxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IC44ZW0gMmVtIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAkcG9zdC1yZXdhcmQtaW1nLXdpZHRoO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbmV4dC1yb2xsIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDMwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTMwZGVnKTtcbiAgfVxufVxuIiwiLmNhdGVnb3J5LWFsbC1wYWdlIHtcbiAgLmNhdGVnb3J5LWFsbC10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmNhdGVnb3J5LWFsbCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuXG4gIC5jYXRlZ29yeS1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3QtaXRlbSB7XG4gICAgbWFyZ2luOiA1cHggMTBweDtcbiAgfVxuXG4gIC5jYXRlZ29yeS1saXN0LWNvdW50IHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlc3Q7XG4gICAgYmFkZ2UoKTtcbiAgfVxuXG4gIC5jYXRlZ29yeS1saXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIH1cbn1cbiIsIkBrZXlmcmFtZXMgZG90LWZsYXNoIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG4gIH1cbn1cblxuLmV2ZW50LWxpc3Qge1xuICBociB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgbWFyZ2luOiAyMHB4IDAgNDVweDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRibGFjay1kZWVwO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgY29udGVudDogJ05PVyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5ldmVudCB7XG4gICAgLS1ldmVudC1iYWNrZ3JvdW5kOiAkYmxhY2stZGVlcDtcbiAgICAtLWV2ZW50LWZvcmVncm91bmQ6ICRncmV5O1xuICAgIC0tZXZlbnQtdGl0bGU6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWV2ZW50LWJhY2tncm91bmQpO1xuICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICAuZXZlbnQtc3VtbWFyeSB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgY29sb3I6IHZhcigtLWV2ZW50LXRpdGxlKTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDM1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoIDFzIGFsdGVybmF0ZSBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZXZlbnQtdGl0bGUpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByb3VuZC1pY29uKDEycHgpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUob2RkKSAuZXZlbnQtc3VtbWFyeTo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLjVzO1xuICAgIH1cblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5ldmVudC1yZWxhdGl2ZS10aW1lIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1ldmVudC1mb3JlZ3JvdW5kKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLmV2ZW50LWRldGFpbHMge1xuICAgICAgY29sb3I6IHZhcigtLWV2ZW50LWZvcmVncm91bmQpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgIHBhZGRpbmc6IDZweCAwIDZweCAzNXB4O1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZXZlbnQtZm9yZWdyb3VuZCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBmb250LWZhbWlseS1pY29ucygpO1xuICAgICAgfVxuXG4gICAgICAmLmV2ZW50LWxvY2F0aW9uOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMDQxJztcbiAgICAgIH1cblxuICAgICAgJi5ldmVudC1kdXJhdGlvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjAxNyc7XG4gICAgICB9XG5cbiAgICAgICYuZXZlbnQtZGVzY3JpcHRpb246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwMjQnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5ldmVudC1wYXN0IHtcbiAgICAtLWV2ZW50LWJhY2tncm91bmQ6ICR3aGl0ZXNtb2tlO1xuICAgIC0tZXZlbnQtZm9yZWdyb3VuZDogJGdyZXktZGFyaztcbiAgICAtLWV2ZW50LXRpdGxlOiAkYmxhY2stZGVlcDtcbiAgfVxufVxuIiwidWwuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMCAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgbGk6bm90KDpmaXJzdC1jaGlsZCk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJy9cXDAwYTAnO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgcGFkZGluZzogLjVlbTtcbiAgfVxuXG4gIGxpOmxhc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG4iLCIudGFnLWNsb3VkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDEwcHg7XG4gIH1cbn1cblxuZm9yICR0YWctY2xvdWQgaW4gKDAgLi4gMTApIHtcbiAgJHRhZy1jbG91ZC1jb2xvciA9IG1peCgkdGFnLWNsb3VkLWVuZCwgJHRhZy1jbG91ZC1zdGFydCwgJHRhZy1jbG91ZCAqIDEwKTtcbiAgLnRhZy1jbG91ZC17JHRhZy1jbG91ZH0ge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0YWctY2xvdWQtY29sb3I7XG4gICAgY29sb3I6ICR0YWctY2xvdWQtY29sb3I7XG4gIH1cbn1cblxuaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICBmb3IgJHRhZy1jbG91ZCBpbiAoMCAuLiAxMCkge1xuICAgICAgJHRhZy1jbG91ZC1jb2xvciA9IG1peCgkdGFnLWNsb3VkLWVuZC1kYXJrLCAkdGFnLWNsb3VkLXN0YXJ0LWRhcmssICR0YWctY2xvdWQgKiAxMCk7XG4gICAgICAudGFnLWNsb3VkLXskdGFnLWNsb3VkfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0YWctY2xvdWQtY29sb3I7XG4gICAgICAgIGNvbG9yOiAkdGFnLWNsb3VkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdsb2NhbF9zZWFyY2guZW5hYmxlJykgb3IgaGV4by1jb25maWcoJ2FsZ29saWFfc2VhcmNoLmVuYWJsZScpKSB7XG4gIC5zZWFyY2gtYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZGlhbG9nLXNjcm9sbGd1dHRlciwgMCk7XG4gIH1cblxuICAuc2VhcmNoLXBvcC1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC40cywgYmFja2dyb3VuZCAuNHM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtNDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtcG9wdXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzO1xuICAgIHdpZHRoOiA3MDBweDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICArbW9iaWxlKCkge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zZWFyY2gtaWNvbiwgLnBvcHVwLWJ0bi1jbG9zZSB7XG4gICAgICBjb2xvcjogJGdyZXktZGFyaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG5cbiAgICAucG9wdXAtYnRuLWNsb3NlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciAuZmEge1xuICAgICAgICBjb2xvcjogJGJsYWNrLWRlZXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1oZWFkZXIge1xuICAgICAgYmFja2dyb3VuZDogJGdhaW5zYm9ybztcbiAgICAgIGlmIChoZXhvLWNvbmZpZygnZGFya21vZGUnKSkge1xuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGdyZXktZGltO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNTVweCk7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IDVweCAyNXB4O1xuXG4gICAgICBociB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW46IDVweCAwIDEwcHg7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWxpc3Qge1xuICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYS5zZWFyY2gtcmVzdWx0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHAuc2VhcmNoLXJlc3VsdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRncmV5LWxpZ2h0O1xuICAgICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIH1cblxuICAgIC5zZWFyY2gtaW5wdXQtY29udGFpbmVyIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICB9XG5cbiAgICAuc2VhcmNoLXJlc3VsdC1pY29uIHtcbiAgICAgIGNvbG9yOiAkZ3JleS1saWdodDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cbn1cblxubWFyay5zZWFyY2gta2V5d29yZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRyZWQ7XG4gIGNvbG9yOiAkcmVkO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuaWYgKGhleG8tY29uZmlnKCdhbGdvbGlhX3NlYXJjaC5lbmFibGUnKSkge1xuICAuc2VhcmNoLXN0YXRzIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5wYWdpbmF0aW9uLmFsZ29saWEtcGFnaW5hdGlvbiB7XG4gICAgLy8gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc3R5bGUgb2YgcGFnaW5hdGlvblxuICAgIC8vIFB1dCBwYWdpbmF0aW9uIGF0IHRoZSBib3R0b20gd2hlbiB0aGVyZSBpcyBzdWZmaWNpZW50IGhlaWdodFxuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZzogNDBweCAwO1xuICAgIC8vIE92ZXJyaWRlIG1vdGlvblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVtZS1uZXh0L2hleG8tdGhlbWUtbmV4dC9pc3N1ZXMvNTM3XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnZGlzcXVzanMnO1xuQGltcG9ydCAnZ2l0YWxrJztcbkBpbXBvcnQgJ3V0dGVyYW5jZXMnO1xuQGltcG9ydCAnc2VhcmNoJztcbkBpbXBvcnQgJ21hdGgnO1xuXG4udXNlLW1vdGlvbiAuYW5pbWF0ZWQge1xuICAvLyBGaXggaXNzdWUgIzQ4ICM1NVxuICBhbmltYXRpb24tZmlsbC1tb2RlOiBub25lO1xuICAvLyBGaXggaXNzdWUgIzQ2IC5hbmltYXRlZCBpbiAuc2lkZWJhclxuICB2aXNpYmlsaXR5OiBpbmhlcml0O1xufVxuXG4udXNlLW1vdGlvbiAuc2lkZWJhciAuYW5pbWF0ZWQge1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuIiwiaGVhZGVyLmhlYWRlciB7XG4gIG1haW4tY29udGFpbmVyKCk7XG59XG5cbi5tYWluLWlubmVyIHtcbiAgbWFpbi1jb250YWluZXIoKTtcbiAgcGFkZGluZy1ib3R0b206ICRjb250ZW50LXBhZGRpbmctYm90dG9tO1xuXG4gICttb2JpbGUoKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cbn1cblxuLy8gUGFnZSAtIENvbnRhaW5lclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wb3N0LWJsb2NrOmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogJHBvc3RzLWZpcnN0LXBhZGRpbmc7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBwYWRkaW5nLXRvcDogJHBvc3RzLWZpcnN0LXBhZGRpbmctbW9iaWxlO1xuICB9XG59XG4iLCIuY3VzdG9tLWxvZ28taW1hZ2Uge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgbWFyZ2luOiAwIGF1dG8gMTBweDtcbiAgbWF4LXdpZHRoOiAxNTBweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uYnJhbmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tZGVmYXVsdC1iZyk7XG59XG5cbmhlYWRlci5oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMTAwcHg7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxufVxuIiwiLnNpdGUtbmF2IHtcbiAgK21vYmlsZSgpIHtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgfVxufVxuXG4ubWFpbi1tZW51IHtcbiAgK21vYmlsZSgpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktbGlnaHRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktbGlnaHRlcjtcbiAgfVxufVxuXG4ubWVudSB7XG4gICttb2JpbGUoKSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4ubWVudSAubWVudS1pdGVtIHtcbiAgK21vYmlsZSgpIHtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgfVxuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICttb2JpbGUoKSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIG1lbnUtaXRlbS1yb3coKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmLm1lbnUtaXRlbS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluay1ob3Zlci1jb2xvcik7XG5cbiAgICAgICttb2JpbGUoKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGdyZXktbGlnaHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgK3RhYmxldC1kZXNrdG9wKCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLnN1Yi1tZW51IHtcbiAgbWFyZ2luOiAxMHB4IDA7XG5cbiAgLm1lbnUtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iXX0= */