@charset "UTF-8";
@import url("//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css");
.off-canvas { min-height: 100vh; }

.off-canvas .off-canvas-toggle { position: fixed; top: 0.3rem; left: 0.3rem; width: 1.6rem; height: 1.6rem; padding-top: .15rem; z-index: 3; font-size: 16px !important; }

.off-canvas .off-canvas-content { padding: inherit; }

.off-canvas .off-canvas-overlay { background: rgba(69, 77, 93, 0.5); }

.off-canvas .learn-sidebar { width: 14rem; color: rgba(255, 255, 255, 0.6); overflow-y: inherit; }

.off-canvas .learn-sidebar:before { position: fixed; content: ''; height: 100vh; width: 14rem; top: 0; left: 0; }

.off-canvas .learn-sidebar a { color: rgba(255, 255, 255, 0.8); }

.off-canvas .learn-sidebar a:hover { color: #fff; }

.off-canvas .learn-sidebar .padding { padding-left: 1rem; }

.off-canvas .learn-sidebar hr { border: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }

.off-canvas .learn-sidebar .learn-brand { position: fixed; height: 7.5rem; width: 14rem; top: 0; padding: 20px; box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.3); }

.off-canvas .learn-sidebar .learn-brand #logo { display: inline-block; /*margin: 0 2.5rem 0.5rem;*/ margin-top: 0px; margin-bottom: 0px; margin-left: -10px; margin-right: 0px; }

.off-canvas .learn-sidebar .learn-brand #logo path { fill: rgba(255, 255, 255, 0.8) !important; }

.off-canvas .learn-sidebar .learn-nav { top: 8.5rem; bottom: 0; width: 14rem; padding-bottom: 1rem; position: fixed; }

.off-canvas .learn-sidebar .learn-nav .read-icon { float: right; margin-right: 12px; margin-top: 5px; display: none; opacity: 0.8; color: rgba(255, 255, 255, 0.6); font-size: 12px; }

.off-canvas .learn-sidebar .learn-nav .visited > a > .read-icon { display: inline; }

.off-canvas .learn-sidebar .learn-nav ul { list-style: none; margin-left: 1rem; margin-top: .2rem; }

.off-canvas .learn-sidebar .learn-nav ul.topics { margin-top: 0; }

.off-canvas .learn-sidebar .learn-nav ul.topics > li:first-child { margin-top: 0; }

.off-canvas .learn-sidebar .learn-nav ul a { display: block; padding-top: 0.1rem; padding-bottom: 0.1rem; }

.off-canvas .learn-sidebar .learn-nav ul.searched a { color: rgba(255, 255, 255, 0.5); }

.off-canvas .learn-sidebar .learn-nav ul.searched .search-match a { color: rgba(255, 255, 255, 0.8); }

.off-canvas .learn-sidebar .learn-nav ul.searched .search-match a:hover { color: rgba(255, 255, 255, 0.9); }

.off-canvas .learn-sidebar .learn-nav ul.topics.searched ul { display: block; }

.off-canvas .learn-sidebar .learn-nav ul.topics > li { margin-top: .3rem; }

.off-canvas .learn-sidebar .learn-nav ul.topics > li.active, .off-canvas .learn-sidebar .learn-nav ul.topics > li.parent { background-color: rgba(0, 0, 0, 0.2); margin-left: -1rem; padding-left: 1rem; padding-top: 0.25rem; padding-bottom: 0.25rem; }

.off-canvas .learn-sidebar .learn-nav ul li, .off-canvas .learn-sidebar .learn-nav ul ol { margin-top: .1rem; }

.off-canvas .learn-sidebar .learn-nav ul ul { font-size: 0.75rem; display: none; margin-top: 0; margin-bottom: 0; }

.off-canvas .learn-sidebar .learn-nav ul li.active > a { background-color: #1A73EC; color: #fff; margin-left: -0.4rem; padding-left: 0.4rem; }

.off-canvas .learn-sidebar .learn-nav ul li a > span > b { font-weight: 300; color: rgba(255, 255, 255, 0.6); }

.off-canvas .learn-sidebar .learn-nav ul .active ul, .off-canvas .learn-sidebar .learn-nav ul .parent ul { display: block; }

.off-canvas .learn-sidebar .searchbox-container { display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; }

.off-canvas .learn-sidebar .searchbox { -ms-flex: 1; flex: 1; position: relative; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.1); color: rgba(255, 255, 255, 0.6); border-radius: 2px; }

.off-canvas .learn-sidebar .searchbox :-ms-input-placeholder { color: rgba(255, 255, 255, 0.5); }

.off-canvas .learn-sidebar .searchbox ::-ms-input-placeholder { color: rgba(255, 255, 255, 0.5); }

.off-canvas .learn-sidebar .searchbox ::placeholder { color: rgba(255, 255, 255, 0.5); }

.off-canvas .learn-sidebar .searchbox input { border: 0; background: transparent; width: 100%; padding: 4px 25px 4px 30px; color: rgba(255, 255, 255, 0.8); font-weight: 200; font-size: 0.8rem; }

.off-canvas .learn-sidebar .searchbox label { position: absolute; left: 8px; top: 2px; }

.off-canvas .learn-sidebar .searchbox span { position: absolute; right: 8px; top: 50%; font-size: 0.8rem; transform: translateY(-50%); }

.off-canvas .learn-sidebar .search-options .adv-search { font-size: 85%; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; padding-left: 0.6rem; }

.off-canvas .learn-sidebar .search-options .adv-search i { margin-right: 5px; }

.off-canvas .learn-sidebar .search-options .version-chooser { height: 100%; display: -ms-flexbox; display: flex; }

.off-canvas .learn-sidebar .search-options .version-chooser select { padding: 0 0 0 .2rem; display: inline-block; border: 1px solid rgba(255, 255, 255, 0.1); border-left: 0; background: rgba(0, 0, 0, 0.1); color: #fff; border-radius: 2px; font-size: .8rem; font-weight: 700; margin: 0; letter-spacing: 1px; }

.off-canvas .learn-sidebar .side-tools { font-size: 90%; color: rgba(255, 255, 255, 0.5); }

/** Default **/
body.sidebar-purple .off-canvas .learn-sidebar:before { background: linear-gradient(150deg, #0766E2 0, #2c1594 100%); /* background: linear-gradient(150deg, #0766E2 0, #A638F5 100%);*/ }

/** Secondary (green) **/
body.sidebar-green .off-canvas .learn-sidebar:before { background: linear-gradient(150deg, #16A085 0, #283A63 100%); }

/** Tertiary (blue)**/
body.sidebar-blue .off-canvas .learn-sidebar:before { background: linear-gradient(150deg, #1A73EC 0, #283A63 100%); }

/** High Contrast **/
body.sidebar-contrast .off-canvas .learn-sidebar a { color: #fff; }

body.sidebar-contrast .off-canvas .learn-sidebar:before { background: linear-gradient(150deg, #3B4349 0, #1E2329 100%); }

body.sidebar-contrast .off-canvas .learn-sidebar .searchbox :-ms-input-placeholder { color: rgba(255, 255, 255, 0.7); }

body.sidebar-contrast .off-canvas .learn-sidebar .searchbox ::-ms-input-placeholder { color: rgba(255, 255, 255, 0.7); }

body.sidebar-contrast .off-canvas .learn-sidebar .searchbox ::placeholder { color: rgba(255, 255, 255, 0.7); }

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

@font-face { font-family: 'Public Sans'; src: url("../fonts/PublicSans-Light.woff2") format("woff2"), url("../fonts/PublicSans-Light.woff") format("woff"); font-weight: 300; font-style: normal; }

@font-face { font-family: 'Public Sans'; src: url("../fonts/PublicSans-SemiBold.woff2") format("woff2"), url("../fonts/PublicSans-SemiBold.woff") format("woff"); font-weight: 500; font-style: normal; }

@font-face { font-family: 'Hack'; src: url("../fonts/hack-regular-subset.woff2") format("woff2"), url("../fonts/hack-regular-subset.woff") format("woff"); font-weight: 400; font-style: normal; }

#top-bar { /*position: fixed;*/ display: -ms-flexbox; display: flex; background: #f8f9fa; border-bottom: 1px solid #edeef1; z-index: 2; -ms-flex-align: center; align-items: center; top: 0; right: 0; left: 14rem; }

@media (max-width: 960px) { #top-bar { left: 0; } }

#top-bar #breadcrumbs { padding-left: 0.5rem; line-height: 1; height: auto; width: 100%; }

@media (max-width: 600px) { #top-bar #breadcrumbs * { display: none; } }

#top-bar #breadcrumbs > span, #top-bar #breadcrumbs > a { padding: 0 .5rem !important; }

#top-bar #breadcrumbs > span span, #top-bar #breadcrumbs > a span { padding: 0 !important; }

@media (max-width: 960px) { #top-bar #breadcrumbs { padding-left: 2rem; } }

#top-bar #navigation { width: 400px; display: -ms-flexbox; display: flex; }

#top-bar #navigation > a, #top-bar #navigation span { width: 50%; text-align: center; border-left: 1px solid #edeef1; font-size: 27px; text-decoration: none; transition: background-color 0.5s ease, color 0.5s ease; }

#top-bar #navigation > a.disabled, #top-bar #navigation span.disabled { color: #bbc1cd; }

#top-bar #navigation > a:hover { background: #edeef1; color: #0e51ab; }

#top-bar .progress { position: absolute; bottom: -1px; background: linear-gradient(to right, #1A73EC var(--scroll), transparent 0); background-repeat: no-repeat; width: 100%; height: 1px; z-index: 1; }

.center-content #start { -ms-flex: 1; flex: 1; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; -ms-flex-pack: center; justify-content: center; }

.learn-content { position: relative; display: -ms-flexbox; display: flex; min-height: 100vh; -ms-flex-direction: column; flex-direction: column; }

.learn-content #start { padding: 2rem 3rem; }

@media (max-width: 1280px) { .learn-content #start { padding: 0rem 1rem; } }

@media (max-width: 960px) { .learn-content #start { padding: 0rem 1rem; } }

#footer { border-top: 1px solid #e7e9ed; margin-top: 1rem; text-align: center; }

#footer p { margin: 1rem 0; }

.page-toc { float: right; width: 250px; padding: 0.5rem 0.75rem; background: #f3f4f6; margin-left: 1.5rem; margin-right: 0; margin-bottom: 1rem; margin-top: 10px; font-size: 0.7rem; overflow: hidden; }

@media (max-width: 600px) { .page-toc { float: none; width: 100%; margin-top: 0.5rem; margin-left: 0; margin-bottom: 0; } }

.page-toc .toc-toggle { font-size: 1.2rem; display: block; float: right; margin-top: -8px; margin-right: -10px; padding: 5px 10px; line-height: 1; color: #667189; cursor: pointer; }

.page-toc.toc-closed { height: 40px; margin-bottom: 0.5rem; }

.page-toc.toc-closed .toc-toggle .fa:before { content: '\f107'; }

.page-toc h5 { margin: 0 0 1rem; }

.page-toc ul { margin-left: 1rem; margin-bottom: 0; }

.page-toc li { margin-top: 0; list-style: decimal; color: #808ba1; }

.page-toc li li { list-style: decimal; }

.page-toc li li li { list-style: square; }

.page-toc ul > li.first.last { list-style: none; margin: 0; margin-left: -1rem; }

.page-toc + #body-inner > .notices, .page-toc + #body-inner > .code-toolbar { overflow: hidden; }

.user-profile.github-link.dropdown-container { margin-left: auto !important; /* ← forces it all the way to the right */ -ms-flex-negative: 0; flex-shrink: 0; /* don't let it shrink */ padding: 0 1rem; /* match other links */ }

html { font-size: 18px; }

@media screen and (min-width: 480px) { html { font-size: calc(18px + 2 * ((100vw - 480px) / 800)); } }

@media screen and (min-width: 1280px) { html { font-size: 20px; } }

body { font-weight: 300; letter-spacing: -0.015rem; }

body ::selection { background: #ECECFE; }

div { min-width: 0; }

pre { padding: 1em; }

mark { padding: 0; }

h1, h2, h3, h4, h5, h6 { font-family: "Metropolis", "Helvetica Neue", sans-serif; letter-spacing: -0.05rem; margin-top: 2rem; color: #242931; line-height: 1; font-weight: 500; }

h1 { font-size: 2.5rem; font-weight: 500; }

@media (max-width: 600px) { h1 { font-size: 2rem; } }

a:hover, a:focus, a:active, a.active { color: #0e51ab; text-decoration: none; }

a:focus { outline: none !important; box-shadow: none !important; }

a:visited { color: #1267da; }

.table-keycol { overflow: hidden; }

.table { width: auto; }

table { border-collapse: collapse; border-spacing: 0; width: 100%; overflow-x: auto; margin-bottom: 1.5rem; text-align: left; }

table tbody tr:nth-of-type(odd) { background: #f8f9fa; }

table tbody tr.active { background: #f0f1f4; }

table td, table th { border-bottom: 0.05rem solid #e7e9ed; padding: 0.6rem 0.4rem; }

table th { border-bottom-width: 0.1rem; }

.table-keycol table tr > td:first-child, .table-keycol table tr > th:first-child { white-space: nowrap; width: 15%; }

img, .video-container { max-width: 100%; /*margin: 3rem auto;*/ display: block; text-align: center; }

img.border, .video-container.border { border: 2px solid #e6e6e6 !important; padding: 2px; }

img.shadow, .video-container.shadow { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); }

hr { border: 0; border-top: 1px solid #e7e9ed; }

ul, ol { margin: 0 0 1.2rem 0; }

ul ul, ul ol, ol ul, ol ol { margin: 0; }

ul ol, ol ol { list-style-type: decimal; }

ul li, ol li { padding-top: 0; }

.button-primary { background: #1A73EC; border-color: #136be4; color: #fff !important; }

.button-primary:focus, .button-primary:hover { background: #1267da; border-color: #1160cc; color: #fff; }

.button-primary:active, .button-primary.active { background: #1163d1; border-color: #105cc3; color: #fff; }

#chapter { text-align: left; max-width: 60%; margin: 0 auto; }

#chapter h3 { opacity: 0.7; }

#chapter h3 + h1 { display: inline-block; margin: 1rem auto 2rem; border-bottom: 3px solid #e7e9ed; }

@media (max-width: 600px) { #chapter h3 + h1 { font-size: 2.5rem; } }

#body-inner :target:before { content: ""; display: block; margin-top: -60px; height: 60px; width: 1px; }

pre.xdebug-var-dump { background: #fafafa; display: block; padding: 1rem; line-height: 1.5; color: inherit; border-radius: 2px; overflow-x: auto; }

#body-inner pre { margin: 0.5rem 0; }

#body-inner pre ::selection { background: #ECECFE; }

#body-inner code { word-break: break-word; }

#body-inner .prism-wrapper { overflow: hidden; }

#body-inner .code-toolbar { margin: 0.5rem 0; }

#body-inner .code-toolbar pre[class*="language-"] { margin: 0; }

#body-inner code[class*="language-"], #body-inner pre[class*="language-"] { font-family: "Hack", monospace; }

#body-inner pre[class*="language-"] { font-size: .7rem; }

#body-inner pre[class*="language-"] code { padding: initial; font-size: .7rem; }

#body-inner .no-margin-top { margin-top: -1em; }

#body-inner .no-margin-top .code-toolbar { margin-top: 0; }

#body-inner .no-margin-top .code-toolbar > pre { padding-top: 3px; }

#body-inner .no-margin-bottom .code-toolbar { margin-bottom: 0; }

#body-inner .line-highlight { background: linear-gradient(to right, rgba(255, 233, 179, 0.3) 70%, rgba(255, 233, 179, 0)); }

#body-inner .line-highlight:before { background-color: #ffbd1a; box-shadow: none; top: 0.15rem; }

i.fa.fa-heart.pulse, i.fa.fa-heart-o.pulse { color: #920; }

b, strong { font-weight: 500; }

.heavy { font-weight: 700; }

.light { font-weight: 200; }

#error { text-align: center; position: relative; margin-top: 5rem; }

#error .icon { font-size: 50px; }

#messages { margin-bottom: 1rem; }

#messages .icon { font-size: 1rem; }

ul, ol { margin-left: 1.6rem; }

ul ul, ul ol, ol ul, ol ol { margin-left: 1.6rem; }

ul { list-style: disc outside; }

ol { list-style: decimal outside; }

#navigation a.github-link { font-size: inherit !important; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; padding: 0 1rem; }

#navigation a.github-link i { padding-right: 5px; }

.tabs-wrapper.ui-theme-badges { background: #F8F9FA; border: 1px solid #f2f4f6; border-radius: 0; }

.tabs-wrapper.ui-theme-badges .tabs-nav { margin: 0.25rem; }

.tabs-wrapper.ui-theme-badges .tabs-nav > li { margin-top: 0; }

.tabs-wrapper.ui-theme-badges .tabs-nav li a { color: #767693; background: #e6eaed; border-radius: 0; }

.tabs-wrapper.ui-theme-badges .tabs-nav li.current a { background: #8193a5; color: #fff; }

.tabs-wrapper.ui-theme-badges .tabs-nav li:not(.current) a:hover { background: #dde2e7; }

.tabs-wrapper.ui-theme-badges .tabs .tab { padding: 0.25rem 0; }

.tabs-wrapper.ui-theme-badges .tabs .tab pre { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }

.notices { margin: 1.5rem 0; padding: 0.4rem; }

.notices p { margin: 0 0 1.5rem 0.5rem; }

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

.notices.info { border-left: 5px solid #f0ad4e; background: #fcf8f2; color: #df8a13; }

.notices.warning { border-left: 5px solid #d9534f; background: #fdf7f7; color: #b52b27; }

.notices.note { border-left: 5px solid #5bc0de; background: #f4f8fa; color: #28a1c5; }

.notices.tip { border-left: 5px solid #5cb85c; background: #f1f9f1; color: #3d8b3d; }

.twig__headers h3 + h4 { margin-top: -.3rem; font-size: 120%; }

.twig__headers h3 code { font-weight: bold; color: #242931; background: none; }

audio { max-width: 100%; }

pre { max-width: 100%; }

pre[class*="language-"]:not(.command-line), pre[class*="language-"]:not(.command-line) > code[class*="language-"] { word-break: break-word; white-space: pre-wrap; }

.tntsearch-results em { background: #ffe9b3; color: #3a414e; border-bottom: 0.05rem solid #ffd367; border-radius: 0.1rem; padding: 0.05rem 0.1rem 0; }

.lifecycle #body-inner .level { position: relative; }

.lifecycle #body-inner .level h3 { font-size: 18px; position: absolute; margin: 0; padding: 2px 10px 4px; left: 0; z-index: 1000; color: #fff; }

.lifecycle #body-inner .level .level { margin-top: 0.5rem; margin-left: -1rem; margin-right: 1rem; margin-bottom: 0.5rem; padding-bottom: 1rem; }

.lifecycle #body-inner .level ol li { padding-top: 0.1rem; margin-top: 0.2rem; }

.lifecycle #body-inner .level > ol { margin-top: 2rem; }

.lifecycle #body-inner .level.level-1 { background: #f6fefc; border: 4px solid #1ABC9C; color: #1ABC9C; margin-bottom: 1rem; }

.lifecycle #body-inner .level.level-1 h3 { background: #1ABC9C; }

.lifecycle #body-inner .level.level-2 { background: #f7fdf9; border: 4px solid #2ECC71; color: #2ECC71; }

.lifecycle #body-inner .level.level-2 h3 { background: #2ECC71; }

.lifecycle #body-inner .level.level-3 { background: #f3f9fd; border: 4px solid #3498DB; color: #3498DB; }

.lifecycle #body-inner .level.level-3 h3 { background: #3498DB; }

.lifecycle #body-inner .level.level-4 { background: #e4eaf0; border: 4px solid #34495E; color: #34495E; }

.lifecycle #body-inner .level.level-4 h3 { background: #34495E; }

form { /** Reset some defaults for Quark Theme **/ }

form .button-wrapper { margin-top: 0.75rem; margin-bottom: 1rem; }

form span.required { color: #e85600; font-weight: 700; font-size: 1.2rem; }

form .form-input[type=range] { -webkit-appearance: slider-horizontal; appearance: slider-horizontal; }

form .form-input[type=range]:focus { box-shadow: none; border: none; }

form .form-group:not(.form-field-toggleable) .checkboxes { display: inherit; }

form .form-group:not(.form-field-toggleable) .checkboxes label { display: inherit; padding: 0.1rem 0.4rem 0.1rem 1.2rem; margin: inherit; }

form .form-group:not(.form-field-toggleable) .checkboxes label:before { display: none; }

#grav-login > form { margin: 2rem auto 0; max-width: 350px; }

#grav-login .form-label { display: none; }

#grav-login .form-data { margin: 1rem 0; }

#grav-login .form-input { text-align: center; }

#grav-login .button-wrapper { text-align: right; }

#grav-login .button-wrapper .form-data.rememberme { margin: 0; float: left; }

#grav-login .login-form button[type="submit"] { background: #1A73EC; border-color: #136be4; color: #fff !important; }

#grav-login .login-form button[type="submit"]:focus, #grav-login .login-form button[type="submit"]:hover { background: #1267da; border-color: #1160cc; color: #fff; }

#grav-login .login-form button[type="submit"]:active, #grav-login .login-form button[type="submit"].active { background: #1163d1; border-color: #105cc3; color: #fff; }

#grav-login .twofa-form button[type="submit"]:first-child { background: #1A73EC; border-color: #136be4; color: #fff !important; float: right; margin-left: 4px; }

#grav-login .twofa-form button[type="submit"]:first-child:focus, #grav-login .twofa-form button[type="submit"]:first-child:hover { background: #1267da; border-color: #1160cc; color: #fff; }

#grav-login .twofa-form button[type="submit"]:first-child:active, #grav-login .twofa-form button[type="submit"]:first-child.active { background: #1163d1; border-color: #105cc3; color: #fff; }

.default-animation, a { transition: all 0.5s ease; }

.pulse { animation-name: pulse_animation; animation-duration: 2000ms; transform-origin: 70% 70%; animation-iteration-count: infinite; animation-timing-function: linear; }

@keyframes pulse_animation { 0% { transform: scale(1); }
  30% { transform: scale(1); }
  40% { transform: scale(1.08); }
  50% { transform: scale(1); }
  60% { transform: scale(1); }
  70% { transform: scale(1.05); }
  80% { transform: scale(1); }
  100% { transform: scale(1); } }

[data-simplebar] { position: relative; -ms-flex-direction: column; flex-direction: column; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-line-pack: start; align-content: flex-start; -ms-flex-align: start; align-items: flex-start; width: inherit; height: inherit; max-width: inherit; max-height: inherit; }

.simplebar-wrapper { overflow: hidden; width: inherit; height: inherit; max-width: inherit; max-height: inherit; }

.simplebar-mask { direction: inherit; position: absolute; overflow: hidden; padding: 0; margin: 0; left: 0; top: 0; bottom: 0; right: 0; width: auto !important; height: auto !important; z-index: 0; }

.simplebar-offset { direction: inherit !important; box-sizing: inherit !important; resize: none !important; position: absolute; top: 0; left: 0; bottom: 0; right: 0; padding: 0; margin: 0; -webkit-overflow-scrolling: touch; }

.simplebar-content-wrapper { direction: inherit; box-sizing: border-box !important; position: relative; display: block; height: 100%; /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */ width: auto; visibility: visible; overflow: auto; /* Scroll on this element otherwise element can't have a padding applied properly */ max-width: 100%; /* Not required for horizontal scroll to trigger */ max-height: 100%; /* Needed for vertical scroll to trigger */ }

.simplebar-content:before, .simplebar-content:after { content: " "; display: table; }

.simplebar-placeholder { max-height: 100%; max-width: 100%; width: 100%; pointer-events: none; }

.simplebar-height-auto-observer-wrapper { box-sizing: inherit !important; height: 100%; width: inherit; max-width: 1px; position: relative; float: left; max-height: 1px; overflow: hidden; z-index: -1; padding: 0; margin: 0; pointer-events: none; -ms-flex-positive: inherit; flex-grow: inherit; -ms-flex-negative: 0; flex-shrink: 0; -ms-flex-preferred-size: 0; flex-basis: 0; }

.simplebar-height-auto-observer { box-sizing: inherit; display: block; opacity: 0; position: absolute; top: 0; left: 0; height: 1000%; width: 1000%; min-height: 1px; min-width: 1px; overflow: hidden; pointer-events: none; z-index: -1; }

.simplebar-track { z-index: 1; position: absolute; right: 0; bottom: 0; pointer-events: none; overflow: hidden; }

[data-simplebar].simplebar-dragging .simplebar-track { pointer-events: all; }

.simplebar-scrollbar { position: absolute; right: 2px; width: 7px; min-height: 10px; }

.simplebar-scrollbar:before { position: absolute; content: ""; background: rgba(255, 255, 255, 0.5); border-radius: 7px; left: 0; right: 0; opacity: 0; transition: opacity 0.2s linear; }

.simplebar-track .simplebar-scrollbar.simplebar-visible:before { /* When hovered, remove all transitions from drag handle */ opacity: 0.5; transition: opacity 0s linear; }

.simplebar-track.simplebar-vertical { top: 0; width: 11px; }

.simplebar-track.simplebar-vertical .simplebar-scrollbar:before { top: 2px; bottom: 2px; }

.simplebar-track.simplebar-horizontal { left: 0; height: 11px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before { height: 100%; left: 2px; right: 2px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar { right: auto; left: 0; top: 2px; height: 7px; min-height: 0; min-width: 10px; width: auto; }

/* Rtl support */
[data-simplebar-direction="rtl"] .simplebar-track.simplebar-vertical { right: auto; left: 0; }

.hs-dummy-scrollbar-size { direction: rtl; position: fixed; opacity: 0; visibility: hidden; height: 500px; width: 500px; overflow-y: hidden; overflow-x: scroll; }

.user-profile { /*position: relative; display: flex; align-items: center; display: flex; width: 100%; */ /*gap: 10px;*/ margin-top: 5px; margin-right: 30px; }

/* .user-profile{ font-size: inherit !important; display: flex; justify-content: center; align-items: center; padding: 0 1rem; i { padding-right: 5px; } } */
/* .profile-link { color: #007bff; text-decoration: none; cursor: pointer; } */
#navigation a.profile-link { font-size: inherit !important; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; padding: 0 1rem; white-space: nowrap; /* Prevent text from wrapping */ }

#navigation a.profile-link i { padding-right: 5px; padding-left: 5px; }

.avatar-circle { width: 30px; height: 30px; background-color: #745b19; border-radius: 50%; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; color: white; font-weight: bold; font-size: 18px; -ms-flex-negative: 0; flex-shrink: 0; }

/* #navigation { a.profile-link { font-size: inherit !important; display: flex; width: auto; justify-content: center; align-items: center; padding: 0 1rem; i { padding-right: 5px; } } } */
.profile-link:hover { text-decoration: underline; }

/* .dropdown-menu { display: none;  position: relative; top: 40px;  right: 175px; background-color: white; border: 1px solid #ddd; border-radius: 4px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); min-width: 160px; z-index: 1000; } */
/* ──────────────────────────────────────────────── */
/*                Dropdown Container                */
/* ──────────────────────────────────────────────── */
.dropdown-container { position: relative; /* ← Very important! */ display: inline-block; /* keeps it compact */ }

/* Trigger (the thing you click/hover) */
.dropdown-trigger { display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; gap: 8px; /* space between avatar and text */ padding: 6px 10px; text-decoration: none; color: inherit; border-radius: 4px; transition: background-color 0.15s; }

.dropdown-trigger:hover, .dropdown-trigger:focus { background-color: #f0f0f0; /* or your theme color */ }

/* The actual dropdown */
.dropdown-menu { /* Hidden by default */ display: none; /* Positioning magic */ position: absolute; top: 100%; /* right under the trigger */ left: 50%; /* center under trigger */ transform: translateX(-50%); /* perfect centering */ /* Or right-aligned (more common for user menus): */ /* left: 0; */ /* transform: none; */ /* right: 0; */ /* ← use this combination for right-align */ min-width: 180px; /* or 200px, whatever fits best */ background-color: white; border: 1px solid #ddd; border-radius: 6px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); z-index: 1000; margin-top: 4px; /* tiny breathing room */ }

/* Optional: little arrow/triangle on top */
.dropdown-menu::before { content: ""; position: absolute; top: -6px; left: 50%; transform: translateX(-50%); border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid white; z-index: 1001; }

/* Show dropdown */
.dropdown-container:hover .dropdown-menu, .dropdown-container.show .dropdown-menu { /* .show for JS click version */ display: block; }

.dropdown-header { padding: 10px; font-weight: bold; border-bottom: 1px solid #ddd; background-color: #f8f9fa; }

.dropdown-item { display: block; padding: 10px; color: #333; text-decoration: none; }

.dropdown-item:hover { background-color: #f1f1f1; }

.user-profile:hover .dropdown-menu { display: block; }

#chapter { text-align: left; }

h4 > .katex { font-size: 4em; }

#top-bar { z-index: 2; top: 0; right: 0; left: 14rem; /*display: -ms-flexbox;*/ display: -ms-flexbox; display: flex; border-bottom: 1px solid #edeef1; background: #f8f9fa; -ms-flex-align: center; align-items: center; }

.pulse-icon { color: red; }

.interactive-icon { color: #18c3f7; }

.practicetime-icon { color: #14db1d; }

.question-area { /*border: 1px solid #ddd; padding: 10px;*/ word-wrap: break-word; /* Internet Explorer 5.5+ */ border: 1px solid #5cb85c; /*border-right: 10px solid #5cb85c;*/ background: #f7fbf7; /*color: #3d8b3d;*/ border-radius: 10px; padding-top: 0.4em; padding-left: 1em; padding-bottom: 0.4em; }

.highlight { background-color: #ffff0057; /* Highlight color */ transition: background-color 0.5s; /* Smooth transition */ }

#learn { margin-top: -10px; margin-bottom: 0px; margin-left: 1em; font-size: 2em; text-align: left; font-family: "Brush Script MT", Cursive, Cursive; }

.login-status-wrapper { margin-left: 1em; -ms-flex-pack: justify; justify-content: space-between; }

#login-elements img { margin: 0; }

#login-elements a.github-link { font-size: inherit !important; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; padding: 0 1rem; }

#login-elements a.profile-link { font-size: inherit !important; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; padding: 0 1rem; }

#login-bar #login-elements { width: 100%; display: -ms-flexbox; display: flex; }

#login-bar #login-elements > a, #login-bar #login-elements span { width: 15%; text-align: center; border-left: 1px solid #edeef1; margin-left: auto; text-decoration: none; transition: background-color 0.5s ease, color 0.5s ease; }

#login-bar #login-elements > a:hover { background: #edeef1; color: #0e51ab; }

#login-elements a.github-link { font-size: inherit !important; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; padding: 0 1rem; }

#login-bar { /*position: fixed;*/ display: -ms-flexbox; display: flex; background: #f8f9fa; border-bottom: 1px solid #edeef1; z-index: 3; -ms-flex-align: center; align-items: center; top: 0; right: 0; left: 14rem; }

.eo_jsmol { border: 10; }

#body img, #body .video-container { margin: 0rem auto; display: block; text-align: center; }

div[id$='_appletinfotablediv'] { border: 5px solid #f1f9f1; border-radius: 3px; }

input, label, select { display: inline; }

#chapter h1 { font-size: 3.25rem; border-bottom: 4px solid #F0F2F4; }

/* CSS to style Presentation Plugin slides */
.reveal .slides { text-align: left; }

.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { text-transform: unset !important; }

#header .logo img, #header .logo svg { display: inherit; /*height: 70px;*/ }

.iframe-container { /* overflow: hidden; */ /* 16:9 aspect ratio */ padding-top: 56.25%; position: relative; }

.iframe-container iframe { border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%; }

.eo_jsmol > div { margin: 0 auto; }

.editpage { position: fixed; bottom: 20px; right: 80px; padding: 5px 6px; background: #F67E40; color: #fff; font-weight: bold; text-decoration: none; text-transform: uppercase; }

.notes_text { word-wrap: break-word; /* Internet Explorer 5.5+ */ border-left: 10px solid #0090D9; border-right: 10px solid #0090D9; background: #f3f1f9; color: #0090D9; border-radius: 5px; padding-left: 1em; padding-bottom: 0.4em; }

.notes_text legend { color: #0090D9; margin-bottom: 0.4em; }

.pitfall_text { word-wrap: break-word; /* Internet Explorer 5.5+ */ border-left: 10px solid #d61448; border-right: 10px solid #d61448; background: #f9f1f3; color: red; border-radius: 5px; padding-left: 1em; padding-bottom: 0.4em; }

.pitfall_text legend { color: red; margin-bottom: 0.4em; }

.action_text { word-wrap: break-word; /* Internet Explorer 5.5+ */ border-left: 10px solid #5cb85c; border-right: 10px solid #5cb85c; background: #f1f9f1; color: #3d8b3d; border-radius: 5px; padding-left: 1em; padding-bottom: 0.4em; }

.action_text legend { color: green; margin-bottom: 0.4em; }

.action_text ul { margin-top: 0em; margin-bottom: 0em; }

.action_text legend { color: green; }

/* .action_text:before { font-family: FontAwesome; content: "\f195"; } */
.notices { padding: 1px 1px 1px 30px; margin: 15px 0; }

.notices.yellow { border-left: 10px solid #f0ad4e; background: #fcf8f2; color: #df8a13; }

.notices.red { border-left: 10px solid #d9534f; background: #fdf7f7; color: #b52b27; }

.notices.blue { border-left: 10px solid #5bc0de; background: #f4f8fa; color: #28a1c5; }

.notices.green { border-left: 10px solid #5cb85c; background: #f1f9f1; color: #3d8b3d; }

.action-btn { display: inline-block; padding: 7px; background: #5cb85c; color: #fff; box-shadow: 0 3px 0 #52a552; border: none; border-radius: 7px; }

.action-btn:active, .action-btn-secondary:active { margin: 2px 0 -2px 0; }

.action-btn:hover { background: #138a13; box-shadow: 0 3px 0 #52a552; color: #fff; }

.action-btn:active { box-shadow: 0 1px 0 #52a552; }

.action-btn-sm { margin: 2px 2px 2px 2px; display: inline-block; padding: 3px 12px; background: #5cb85c; color: #fff; box-shadow: 0 3px 0 #52a552; border: none; border-radius: 7px; }

.action-btn-sm:active, .action-btn-sm-secondary:active { margin: 2px 0 -2px 0; }

.action-btn-sm:hover { background: #138a13; box-shadow: 0 3px 0 #52a552; color: #fff; }

.action-btn-sm:active { box-shadow: 0 1px 0 #52a552; }

@media print { .noprint { display: none; }
  .printonly { display: block; } }

@media screen { .noprint { display: block; }
  .printonly { display: none; } }

/*add extra level of collapse*/
/* Hides the sub-menu item if parent not active */
.dd-item .dd-item ul li { display: none; }

.dd-item .dd-item.active ul li, .dd-item.parent > ul > li { display: block; }

/* Hides the sub-sub-menu menu-item if parent not active */
.dd-item.parent > ul > li.dd-item.active > ul > li > ul > li { display: none; }

.dd-item.parent > ul > li.dd-item.active > ul > li { display: block; }

.search-wrapper .search-input { width: 80%; display: inline-block; background-color: #eee; color: #555; }

.search-submit { display: inline-block; border-radius: 4px; background: #eee; border: 1px solid #ccc; vertical-align: top; height: 34px; }

.search-submit img { width: 30px; vertical-align: middle; }

.search-image { float: left; }

.search-item { margin-left: 130px; margin-bottom: 50px; }

.search-item p { margin: 0; }

.search-title h3 { margin: 0; }

.search-details { font-size: 13px; }

.search-row:last-child hr { display: none; }

#top-bar #navigation { width: 80%; /*display: -ms-flexbox;*/ display: -ms-flexbox; display: flex; margin-left: auto; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwidGhlbWUvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3Mvc3BlY3RyZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9sZWFybjQvc2Nzcy9zcGVjdHJlL19taXhpbnMuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3NwZWN0cmUvbWl4aW5zL19hdmF0YXIuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3NwZWN0cmUvbWl4aW5zL19idXR0b24uc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3NwZWN0cmUvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3Mvc3BlY3RyZS9taXhpbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi9sZWFybjQvc2Nzcy9zcGVjdHJlL21peGlucy9fbGFiZWwuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3NwZWN0cmUvbWl4aW5zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3Mvc3BlY3RyZS9taXhpbnMvX3NoYWRvdy5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3Mvc3BlY3RyZS9taXhpbnMvX3RleHQuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3NwZWN0cmUvbWl4aW5zL190b2FzdC5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvX21peGlucy5zY3NzIiwidGhlbWUvX29mZmNhbnZhcy5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvX2ZvbnRzLnNjc3MiLCJ0aGVtZS9fdG9wYmFyLnNjc3MiLCJ0aGVtZS9fYm9keS5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3RoZW1lL19saWZlY3ljbGUuc2NzcyIsIi4uLy4uL2xlYXJuNC9zY3NzL3RoZW1lL19mb3Jtcy5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvX3NpbXBsZWJhci5zY3NzIiwidGhlbWUvX2N1c3RvbS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ3RoZW1lL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9sZWFybjQvc2Nzcy9zcGVjdHJlL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9sZWFybjQvc2Nzcy9zcGVjdHJlL21peGlucyc7XG5cbkBpbXBvcnQgJy4uLy4uL2xlYXJuNC9zY3NzL3RoZW1lL21peGlucyc7XG5AaW1wb3J0ICd0aGVtZS9vZmZjYW52YXMnO1xuQGltcG9ydCAnLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvZm9udHMnO1xuQGltcG9ydCAndGhlbWUvdG9wYmFyJztcbkBpbXBvcnQgJ3RoZW1lL2JvZHknO1xuQGltcG9ydCAndGhlbWUvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICcuLi8uLi9sZWFybjQvc2Nzcy90aGVtZS9saWZlY3ljbGUnO1xuQGltcG9ydCAnLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvZm9ybXMnO1xuQGltcG9ydCAnLi4vLi4vbGVhcm40L3Njc3MvdGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJy4uLy4uL2xlYXJuNC9zY3NzL3RoZW1lL3NpbXBsZWJhcic7XG5cbkBpbXBvcnQgJ3RoZW1lL2N1c3RvbSc7XG5cblxuIiwiLy8gQ29sb3JzXG4kdHVycXVvaXNlOiAjMUFCQzlDO1xuJGdyZWVuLXNlYTogIzE2QTA4NTtcbiRlbWVyYWxkOiAjMkVDQzcxO1xuJG5lcGhyaXRpczogIzI3QUU2MDtcbiRwZXRlci1yaXZlcjogIzM0OThEQjtcbiRiZWxpemVfaG9sZTogIzI5ODBCOTtcbiRkZWVwLXdlbGw6ICMyODNBNjM7XG4kbGF2ZW5kZXI6ICM3Njc2ZjQ7XG4kYW1ldGh5c3Q6ICNBNjZCQkU7XG4kd2lzdGVyaWE6ICM4RTQ0QUQ7XG4kd2V0LWFzcGhhbHQ6ICMzNDQ5NUU7XG4kbWlkbmlnaHQtYmx1ZTogIzJDM0U1MDtcbiRzdW5mbG93ZXI6ICNGMkNBMjc7XG4kb3JhbmdlOiAjRjM5QzEyO1xuJGNhcnJvdDogI0U2N0UyMjtcbiRwdW1wa2luOiAjRDM1NDAwO1xuJGFsaXphcmluOiAjRTc0QzNDO1xuJHBvbWVncmFuYXRlOiAjQzAzOTJCO1xuJGNsb3VkczogI0VDRjBGMTtcbiRzaWx2ZXI6ICNCREMzQzc7XG4kY29uY3JldGU6ICM5NUE1QTY7XG4kYXNiZXN0b3M6ICM3RjhDOEQ7XG5cbiRwcmltYXJ5LWNvbG9yOiAjMUE3M0VDICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogIzhDNDRBQiAhZGVmYXVsdDtcbiRkYXJrLWNvbG9yOiAjNDU0ZDVkICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogZGFya2VuKCRkYXJrLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4kbGluay1jb2xvcjogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4kZ3JheS1jb2xvcjogbGlnaHRlbigkZGFyay1jb2xvciwgNDAlKSAhZGVmYXVsdDtcbiRncmF5LWNvbG9yLWRhcms6IGRhcmtlbigkZ3JheS1jb2xvciwgMjUlKSAhZGVmYXVsdDtcbiRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDYwJSkgIWRlZmF1bHQ7XG4kYmctY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDY2JSkgIWRlZmF1bHQ7XG4kY29kZS1jb2xvcjogJGxhdmVuZGVyICFkZWZhdWx0O1xuJHNlbGVjdGlvbi1jb2xvcjogI0VDRUNGRTtcblxuLy8gU2lkZWJhclxuJHNpZGViYXItd2lkdGg6IDE0cmVtO1xuJHNpZGViYXItYnJhbmQtaGVpZ2h0OiA3LjVyZW07XG5cbi8vIEZvbnRzXG4kYmFzZS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvICFkZWZhdWx0O1xuJGZhbGxiYWNrLWZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWZhbWlseTogXCJQdWJsaWMgU2Fuc1wiLCAgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHRpdGxlLWZvbnQtZmFtaWx5OiBcIk1ldHJvcG9saXNcIiwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJG1vbm8tZm9udC1mYW1pbHk6IFwiSGFja1wiLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kZm9udC1zaXplOiAuODVyZW0gIWRlZmF1bHQ7XG4kbWluLXJlc3BvbnNpdmUtZm9udC1zaXplOiAxOHB4O1xuIiwiLy8gQ29yZSB2YXJpYWJsZXNcbiR2ZXJzaW9uOiBcIjAuNS44XCI7XG5cbi8vIENvcmUgZmVhdHVyZXNcbiRydGw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBDb3JlIGNvbG9yc1xuJHByaW1hcnktY29sb3I6ICMxQTczRUMgIWRlZmF1bHQ7XG4kcHJpbWFyeS1jb2xvci1kYXJrOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDMlKSAhZGVmYXVsdDtcbiRwcmltYXJ5LWNvbG9yLWxpZ2h0OiBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAzNy41JSkgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yLWRhcms6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yLWxpZ2h0OiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDMlKSAhZGVmYXVsdDtcblxuLy8gR3JheSBjb2xvcnNcbiRkYXJrLWNvbG9yOiAjMzAzNzQyICFkZWZhdWx0O1xuJGxpZ2h0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJGdyYXktY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDU1JSkgIWRlZmF1bHQ7XG4kZ3JheS1jb2xvci1kYXJrOiBkYXJrZW4oJGdyYXktY29sb3IsIDMwJSkgIWRlZmF1bHQ7XG4kZ3JheS1jb2xvci1saWdodDogbGlnaHRlbigkZ3JheS1jb2xvciwgMjAlKSAhZGVmYXVsdDtcblxuJGJvcmRlci1jb2xvcjogbGlnaHRlbigkZGFyay1jb2xvciwgNjUlKSAhZGVmYXVsdDtcbiRib3JkZXItY29sb3ItZGFyazogZGFya2VuKCRib3JkZXItY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yLWxpZ2h0OiBsaWdodGVuKCRib3JkZXItY29sb3IsIDglKSAhZGVmYXVsdDtcbiRiZy1jb2xvcjogbGlnaHRlbigkZGFyay1jb2xvciwgNzUlKSAhZGVmYXVsdDtcbiRiZy1jb2xvci1kYXJrOiBkYXJrZW4oJGJnLWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG4kYmctY29sb3ItbGlnaHQ6ICRsaWdodC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ29udHJvbCBjb2xvcnNcbiRzdWNjZXNzLWNvbG9yOiAjMzJiNjQzICFkZWZhdWx0O1xuJHdhcm5pbmctY29sb3I6ICNmZmI3MDAgIWRlZmF1bHQ7XG4kZXJyb3ItY29sb3I6ICNlODU2MDAgIWRlZmF1bHQ7XG5cbi8vIE90aGVyIGNvbG9yc1xuJGNvZGUtY29sb3I6ICNkNzNlNDggIWRlZmF1bHQ7XG4kaGlnaGxpZ2h0LWNvbG9yOiAjZmZlOWIzICFkZWZhdWx0O1xuJGJvZHktYmc6ICRiZy1jb2xvci1saWdodCAhZGVmYXVsdDtcbiRib2R5LWZvbnQtY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDUlKSAhZGVmYXVsdDtcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRsaW5rLWNvbG9yLWRhcms6IGRhcmtlbigkbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcbiRsaW5rLWNvbG9yLWxpZ2h0OiBsaWdodGVuKCRsaW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuXG4vLyBGb250c1xuLy8gQ3JlZGl0OiBodHRwczovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDE1LzExL3VzaW5nLXN5c3RlbS11aS1mb250cy1wcmFjdGljYWwtZ3VpZGUvXG4kYmFzZS1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvICFkZWZhdWx0O1xuJG1vbm8tZm9udC1mYW1pbHk6IFwiU0YgTW9ub1wiLCBcIlNlZ29lIFVJIE1vbm9cIiwgXCJSb2JvdG8gTW9ub1wiLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZhbGxiYWNrLWZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kY2prLXpoLWhhbnMtZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LCBcIlBpbmdGYW5nIFNDXCIsIFwiSGlyYWdpbm8gU2FucyBHQlwiLCBcIk1pY3Jvc29mdCBZYUhlaVwiLCAkZmFsbGJhY2stZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY2prLXpoLWhhbnQtZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LCBcIlBpbmdGYW5nIFRDXCIsIFwiSGlyYWdpbm8gU2FucyBDTlNcIiwgXCJNaWNyb3NvZnQgSmhlbmdIZWlcIiwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGNqay1qcC1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksIFwiSGlyYWdpbm8gU2Fuc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIll1IEdvdGhpY1wiLCBZdUdvdGhpYywgTWVpcnlvLCAkZmFsbGJhY2stZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY2prLWtvLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgXCJNYWxndW4gR290aGljXCIsICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRib2R5LWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLyBVbml0IHNpemVzXG4kdW5pdC1vOiAuMDVyZW0gIWRlZmF1bHQ7XG4kdW5pdC1oOiAuMXJlbSAhZGVmYXVsdDtcbiR1bml0LTE6IC4ycmVtICFkZWZhdWx0O1xuJHVuaXQtMjogLjRyZW0gIWRlZmF1bHQ7XG4kdW5pdC0zOiAuNnJlbSAhZGVmYXVsdDtcbiR1bml0LTQ6IC44cmVtICFkZWZhdWx0O1xuJHVuaXQtNTogMXJlbSAhZGVmYXVsdDtcbiR1bml0LTY6IDEuMnJlbSAhZGVmYXVsdDtcbiR1bml0LTc6IDEuNHJlbSAhZGVmYXVsdDtcbiR1bml0LTg6IDEuNnJlbSAhZGVmYXVsdDtcbiR1bml0LTk6IDEuOHJlbSAhZGVmYXVsdDtcbiR1bml0LTEwOiAycmVtICFkZWZhdWx0O1xuJHVuaXQtMTI6IDIuNHJlbSAhZGVmYXVsdDtcbiR1bml0LTE2OiAzLjJyZW0gIWRlZmF1bHQ7XG5cbi8vIEZvbnQgc2l6ZXNcbiRodG1sLWZvbnQtc2l6ZTogMjBweCAhZGVmYXVsdDtcbiRodG1sLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9udC1zaXplOiAuOHJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtc206IC43cmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1sZzogLjlyZW0gIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQ6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8gU2l6ZXNcbiRsYXlvdXQtc3BhY2luZzogJHVuaXQtMiAhZGVmYXVsdDtcbiRsYXlvdXQtc3BhY2luZy1zbTogJHVuaXQtMSAhZGVmYXVsdDtcbiRsYXlvdXQtc3BhY2luZy1sZzogJHVuaXQtNCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzOiAkdW5pdC1oICFkZWZhdWx0O1xuJGJvcmRlci13aWR0aDogJHVuaXQtbyAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGgtbGc6ICR1bml0LWggIWRlZmF1bHQ7XG4kY29udHJvbC1zaXplOiAkdW5pdC05ICFkZWZhdWx0O1xuJGNvbnRyb2wtc2l6ZS1zbTogJHVuaXQtNyAhZGVmYXVsdDtcbiRjb250cm9sLXNpemUtbGc6ICR1bml0LTEwICFkZWZhdWx0O1xuJGNvbnRyb2wtcGFkZGluZy14OiAkdW5pdC0yICFkZWZhdWx0O1xuJGNvbnRyb2wtcGFkZGluZy14LXNtOiAkdW5pdC0yICogLjc1ICFkZWZhdWx0O1xuJGNvbnRyb2wtcGFkZGluZy14LWxnOiAkdW5pdC0yICogMS41ICFkZWZhdWx0O1xuJGNvbnRyb2wtcGFkZGluZy15OiAoJGNvbnRyb2wtc2l6ZSAtICRsaW5lLWhlaWdodCkgLyAyIC0gJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteS1zbTogKCRjb250cm9sLXNpemUtc20gLSAkbGluZS1oZWlnaHQpIC8gMiAtICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY29udHJvbC1wYWRkaW5nLXktbGc6ICgkY29udHJvbC1zaXplLWxnIC0gJGxpbmUtaGVpZ2h0KSAvIDIgLSAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNvbnRyb2wtaWNvbi1zaXplOiAuOHJlbSAhZGVmYXVsdDtcblxuJGNvbnRyb2wtd2lkdGgteHM6IDE4MHB4ICFkZWZhdWx0O1xuJGNvbnRyb2wtd2lkdGgtc206IDMyMHB4ICFkZWZhdWx0O1xuJGNvbnRyb2wtd2lkdGgtbWQ6IDY0MHB4ICFkZWZhdWx0O1xuJGNvbnRyb2wtd2lkdGgtbGc6IDk2MHB4ICFkZWZhdWx0O1xuJGNvbnRyb2wtd2lkdGgteGw6IDEyODBweCAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50c1xuJHNpemUteHM6IDQ4MHB4ICFkZWZhdWx0O1xuJHNpemUtc206IDYwMHB4ICFkZWZhdWx0O1xuJHNpemUtbWQ6IDg0MHB4ICFkZWZhdWx0O1xuJHNpemUtbGc6IDk2MHB4ICFkZWZhdWx0O1xuJHNpemUteGw6IDEyODBweCAhZGVmYXVsdDtcbiRzaXplLTJ4OiAxNDQwcHggIWRlZmF1bHQ7XG5cbiRyZXNwb25zaXZlLWJyZWFrcG9pbnQ6ICRzaXplLXhzICFkZWZhdWx0O1xuXG4vLyBaLWluZGV4XG4kemluZGV4LTA6IDEgIWRlZmF1bHQ7XG4kemluZGV4LTE6IDEwMCAhZGVmYXVsdDtcbiR6aW5kZXgtMjogMjAwICFkZWZhdWx0O1xuJHppbmRleC0zOiAzMDAgIWRlZmF1bHQ7XG4kemluZGV4LTQ6IDQwMCAhZGVmYXVsdDtcbiIsIi8vIE1peGluc1xuQGltcG9ydCBcIm1peGlucy9hdmF0YXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYnV0dG9uXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwibWl4aW5zL2NvbG9yXCI7XG5AaW1wb3J0IFwibWl4aW5zL2xhYmVsXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwibWl4aW5zL3NoYWRvd1wiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3RvYXN0XCI7IiwiLy8gQXZhdGFyIG1peGluXG5AbWl4aW4gYXZhdGFyLWJhc2UoJHNpemU6ICR1bml0LTgpIHtcbiAgZm9udC1zaXplOiAkc2l6ZSAvIDI7XG4gIGhlaWdodDogJHNpemU7XG4gIHdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50IG1peGluXG5AbWl4aW4gYnV0dG9uLXZhcmlhbnQoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMyUpO1xuICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBjb250cm9sLXNoYWRvdygkY29sb3IpO1xuICB9XG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3IsIDIlKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkY29sb3IsIDUlKTtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRjb2xvciwgNyUpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9XG4gICYubG9hZGluZyB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBjb250cm9sLXNoYWRvdygkY29sb3IpO1xuICB9XG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLCA1MCUpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMiUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCA1JSk7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfVxuICAmLmxvYWRpbmcge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDbGVhcmZpeCBtaXhpblxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBjb2xvciB1dGlsaXR5IG1peGluXG5AbWl4aW4gYmctY29sb3ItdmFyaWFudCgkbmFtZTogXCIuYmctcHJpbWFyeVwiLCAkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gICN7JG5hbWV9IHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3IgIWltcG9ydGFudDtcblxuICAgIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPCA2MCkge1xuICAgICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGV4dCBjb2xvciB1dGlsaXR5IG1peGluXG5AbWl4aW4gdGV4dC1jb2xvci12YXJpYW50KCRuYW1lOiBcIi50ZXh0LXByaW1hcnlcIiwgJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICAjeyRuYW1lfSB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgYSN7JG5hbWV9IHtcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGRhcmtlbigkY29sb3IsIDUlKTtcbiAgICB9XG4gICAgJjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKCRjb2xvciwgNSUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gTGFiZWwgYmFzZSBzdHlsZVxuQG1peGluIGxhYmVsLWJhc2UoKSB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgcGFkZGluZzogLjFyZW0gLjJyZW07XG59XG5cbkBtaXhpbiBsYWJlbC12YXJpYW50KCRjb2xvcjogJGxpZ2h0LWNvbG9yLCAkYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gIGJhY2tncm91bmQ6ICRiZy1jb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcbn1cbiIsIi8vIE1hcmdpbiB1dGlsaXR5IG1peGluXG5AbWl4aW4gbWFyZ2luLXZhcmlhbnQoJGlkOiAxLCAkc2l6ZTogJHVuaXQtMSkge1xuICAubS0jeyRpZH0ge1xuICAgIG1hcmdpbjogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tYi0jeyRpZH0ge1xuICAgIG1hcmdpbi1ib3R0b206ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWwtI3skaWR9IHtcbiAgICBtYXJnaW4tbGVmdDogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tci0jeyRpZH0ge1xuICAgIG1hcmdpbi1yaWdodDogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tdC0jeyRpZH0ge1xuICAgIG1hcmdpbi10b3A6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXgtI3skaWR9IHtcbiAgICBtYXJnaW4tbGVmdDogJHNpemUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXktI3skaWR9IHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gUGFkZGluZyB1dGlsaXR5IG1peGluXG5AbWl4aW4gcGFkZGluZy12YXJpYW50KCRpZDogMSwgJHNpemU6ICR1bml0LTEpIHtcbiAgLnAtI3skaWR9IHtcbiAgICBwYWRkaW5nOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBiLSN7JGlkfSB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucGwtI3skaWR9IHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHItI3skaWR9IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnB0LSN7JGlkfSB7XG4gICAgcGFkZGluZy10b3A6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHgtI3skaWR9IHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLnB5LSN7JGlkfSB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzaXplICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIENvbXBvbmVudCBmb2N1cyBzaGFkb3dcbkBtaXhpbiBjb250cm9sLXNoYWRvdygkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIC4xcmVtIHJnYmEoJGNvbG9yLCAuMik7XG59XG5cbi8vIFNoYWRvdyBtaXhpblxuQG1peGluIHNoYWRvdy12YXJpYW50KCRvZmZzZXQpIHtcbiAgYm94LXNoYWRvdzogMCAkb2Zmc2V0ICgkb2Zmc2V0ICsgLjA1cmVtKSAqIDIgcmdiYSgkZGFyay1jb2xvciwgLjMpO1xufVxuIiwiLy8gVGV4dCBFbGxpcHNpc1xuQG1peGluIHRleHQtZWxsaXBzaXMoKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy8gVG9hc3QgdmFyaWFudCBtaXhpblxuQG1peGluIHRvYXN0LXZhcmlhbnQoJGNvbG9yOiAkZGFyay1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG59XG4iLCJAbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgQGlmICRwb2ludCA9PSAyeCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6JHNpemUtMngpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0geGwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS14bCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IGxnIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUtbGcpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0gbWQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS1tZCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRwb2ludCA9PSBzbSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzaXplLXNtKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IHhzIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUteHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSAgQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCBtaXhpbiBzdXBwb3J0czogeHMsIHNtLCBtZCwgbGcsIHhsLCAyeFwiO1xuICB9XG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbigkcG9zaXRpb246IHJlbGF0aXZlKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBidXR0b24tcHJpbWFyeSgpIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3ItZGFyaztcbiAgY29sb3I6ICRsaWdodC1jb2xvciAhaW1wb3J0YW50O1xuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHByaW1hcnktY29sb3ItZGFyaywgMiUpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRwcmltYXJ5LWNvbG9yLWRhcmssIDUlKTtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLWRhcmssIDQlKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvci1kYXJrLCA3JSk7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfVxufVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkdmFsdWUpIHtcbiAgQHJldHVybiAkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpO1xufVxuXG5AbWl4aW4gZmx1aWQtdHlwZSgkbWluLXZ3LCAkbWF4LXZ3LCAkbWluLWZvbnQtc2l6ZSwgJG1heC1mb250LXNpemUpIHtcbiAgJHUxOiB1bml0KCRtaW4tdncpO1xuICAkdTI6IHVuaXQoJG1heC12dyk7XG4gICR1MzogdW5pdCgkbWluLWZvbnQtc2l6ZSk7XG4gICR1NDogdW5pdCgkbWF4LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICR1MSA9PSAkdTIgYW5kICR1MSA9PSAkdTMgYW5kICR1MSA9PSAkdTQge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiAkbWluLWZvbnQtc2l6ZTtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4tdncpIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKCN7JG1pbi1mb250LXNpemV9ICsgI3tzdHJpcC11bml0KCRtYXgtZm9udC1zaXplIC0gJG1pbi1mb250LXNpemUpfSAqICgoMTAwdncgLSAjeyRtaW4tdnd9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXZ3IC0gJG1pbi12dyl9KSk7XG4gICAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1heC1mb250LXNpemU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIub2ZmLWNhbnZhcyB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG5cbiAgICAub2ZmLWNhbnZhcy10b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMC4zcmVtO1xuICAgICAgICBsZWZ0OiAwLjNyZW07XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjE1cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAub2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkZGFyay1jb2xvciwgLjUpO1xuICAgIH1cblxuICAgIC5sZWFybi1zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoO1xuICAgICAgICBjb2xvcjogcmdiYSgjZmZmLCAwLjYpO1xuICAgICAgICBvdmVyZmxvdy15OiBpbmhlcml0O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuOCk7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWRkaW5nIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICAubGVhcm4tYnJhbmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2lkZWJhci1icmFuZC1oZWlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogJHNpZGViYXItd2lkdGg7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6IHJnYmEoIzAwMCwgMC4zKTtcbiAgICAgICAgICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC4xKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTBweCAtMTBweCByZ2JhKCMwMDAsIDAuMyk7XG5cbiAgICAgICAgICAgICNsb2dvIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgLyptYXJnaW46IDAgMi41cmVtIDAuNXJlbTsqL1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuXG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogcmdiYSgjZmZmLCAwLjgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGVhcm4tbmF2IHtcbiAgICAgICAgICAgIHRvcDogJHNpZGViYXItYnJhbmQtaGVpZ2h0ICsgMXJlbTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgICAgICAgICAucmVhZC1pY29uIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjZmZmLCAwLjYpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnZpc2l0ZWQgPiBhID4gLnJlYWQtaWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAuMnJlbTtcblxuICAgICAgICAgICAgICAgICYudG9waWNzIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4xcmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4xcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuc2VhcmNoZWQge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuNSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuc2VhcmNoLW1hdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi50b3BpY3Mge1xuXG4gICAgICAgICAgICAgICAgICAgICYuc2VhcmNoZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLjNyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWN0aXZlLCAmLnBhcmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAwLjIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxpLCBvbCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC4xcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNHJlbTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYSA+IHNwYW4gPiBiIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjZmZmLCAwLjYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFjdGl2ZSB1bCwgLnBhcmVudCB1bCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2hib3gtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2hib3gge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC4xKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoIzAwMCwgMC4xKTtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuNik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAgICAgICAgIDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDI1cHggNHB4IDMwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoI2ZmZiwgMC44KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuXG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgdG9wOiAycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2gtb3B0aW9ucyB7XG4gICAgICAgICAgICAuYWR2LXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA4NSU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC42cmVtO1xuXG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnZlcnNpb24tY2hvb3NlciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuMSk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2lkZS10b29scyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCNmZmYsIDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBEZWZhdWx0ICoqL1xuYm9keS5zaWRlYmFyLXB1cnBsZSB7XG4gIC5vZmYtY2FudmFzIC5sZWFybi1zaWRlYmFyOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCAjMDc2NkUyIDAsICMyYzE1OTQgMTAwJSk7XG4gICAgICAvKiBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCAjMDc2NkUyIDAsICNBNjM4RjUgMTAwJSk7Ki9cbiAgICB9XG59XG5cbi8qKiBTZWNvbmRhcnkgKGdyZWVuKSAqKi9cbmJvZHkuc2lkZWJhci1ncmVlbiB7XG4gICAgLm9mZi1jYW52YXMgLmxlYXJuLXNpZGViYXI6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE1MGRlZywgJGdyZWVuLXNlYSAwLCAkZGVlcC13ZWxsIDEwMCUpO1xuICAgIH1cbn1cblxuLyoqIFRlcnRpYXJ5IChibHVlKSoqL1xuYm9keS5zaWRlYmFyLWJsdWUge1xuICAgIC5vZmYtY2FudmFzIC5sZWFybi1zaWRlYmFyOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsICRwcmltYXJ5LWNvbG9yIDAsICRkZWVwLXdlbGwgMTAwJSk7XG4gICAgfVxufVxuXG4vKiogSGlnaCBDb250cmFzdCAqKi9cbmJvZHkuc2lkZWJhci1jb250cmFzdCB7XG5cbiAgICBhIHtcbiAgICAgICAgLy9jb2xvcjogbWl4KCMwMDAsICRsaW5rLWNvbG9yLCAyMCUpO1xuICAgIH1cblxuICAgIC5vZmYtY2FudmFzIC5sZWFybi1zaWRlYmFyIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsICMzQjQzNDkgMCwgIzFFMjMyOSAxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2hib3gge1xuICAgICAgICAgICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoI2ZmZiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnTWV0cm9wb2xpcyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL21ldHJvcG9saXMtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9tZXRyb3BvbGlzLWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1B1YmxpYyBTYW5zJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvUHVibGljU2Fucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvUHVibGljU2Fucy1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1B1YmxpYyBTYW5zJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvUHVibGljU2Fucy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvUHVibGljU2Fucy1TZW1pQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0hhY2snO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9oYWNrLXJlZ3VsYXItc3Vic2V0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9oYWNrLXJlZ3VsYXItc3Vic2V0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn0iLCIjdG9wLWJhciB7XG4gICAgLypwb3NpdGlvbjogZml4ZWQ7Ki9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6ICRiZy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRiZy1jb2xvciwgNCUpO1xuICAgIHotaW5kZXg6IDI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAkc2lkZWJhci13aWR0aDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAjYnJlYWRjcnVtYnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiwgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjVyZW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgfVxuXG4gICAgI25hdmlnYXRpb24ge1xuICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgPiBhLCBzcGFuIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGRhcmtlbigkYmctY29sb3IsIDQlKTtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAyN3B4O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGVhc2UsIGNvbG9yIDAuNXMgZWFzZTtcblxuICAgICAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGJvZHktZm9udC1jb2xvciwgNTAlKTtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYmctY29sb3IsIDQlKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpbmstY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9ncmVzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcmltYXJ5LWNvbG9yIHZhcigtLXNjcm9sbCksIHRyYW5zcGFyZW50IDApO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxufVxuIiwiLmNlbnRlci1jb250ZW50IHtcbiAgICAjc3RhcnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG4ubGVhcm4tY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICNzdGFydCB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gM3JlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcmVtIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcmVtIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNmb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JheS1jb2xvci1saWdodDtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgfVxufVxuXG4ucGFnZS10b2Mge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRiZy1jb2xvciwgMiUpO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnRvYy10b2dnbGUge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogbGlnaHRlbigkYm9keS1mb250LWNvbG9yLCAyMCUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi50b2MtY2xvc2VkIHtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgLnRvYy10b2dnbGUgLmZhOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGg1IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGJvZHktZm9udC1jb2xvciwgMzAlKTtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBzcXVhcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHVsID4gbGkuZmlyc3QubGFzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIH1cblxuICAgIC8vIEZpeCBpc3N1ZSB3aXRoIG5vdGljZXMgZ29pbmcgdW5kZXIgVE9DXG4gICAgJiArICNib2R5LWlubmVyIHtcbiAgICAgICAgPiAubm90aWNlcywgPiAuY29kZS10b29sYmFyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG4udXNlci1wcm9maWxlLmdpdGh1Yi1saW5rLmRyb3Bkb3duLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgIC8qIOKGkCBmb3JjZXMgaXQgYWxsIHRoZSB3YXkgdG8gdGhlIHJpZ2h0ICovXG4gICAgZmxleC1zaHJpbms6IDA7ICAgICAgICAgICAgICAgIC8qIGRvbid0IGxldCBpdCBzaHJpbmsgKi9cbiAgICBwYWRkaW5nOiAwIDFyZW07ICAgICAgICAgICAgICAgLyogbWF0Y2ggb3RoZXIgbGlua3MgKi9cbn1cbiIsImh0bWwge1xuICAgIEBpbmNsdWRlIGZsdWlkLXR5cGUoJHNpemUteHMsICRzaXplLXhsLCAkbWluLXJlc3BvbnNpdmUtZm9udC1zaXplLCAkaHRtbC1mb250LXNpemUpO1xufVxuXG5ib2R5IHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMTVyZW07XG4gICAgOjpzZWxlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0aW9uLWNvbG9yO1xuICAgIH1cbn1cblxuZGl2IHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbnByZSB7XG4gICAgcGFkZGluZzogMWVtO1xufVxuXG5tYXJrIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyBIZWFkZXIgT3ZlcnJpZGVzXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGNvbG9yOiBkYXJrZW4oJGJvZHktZm9udC1jb2xvciwgMTAlKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5oMSB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc20pIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cbn1cblxuYSB7XG4gICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSwgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJGxpbmstY29sb3ItZGFyaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGxpbmstY29sb3I7XG4gICAgfVxufVxuXG4vLyBUYWJsZXNcbi50YWJsZS1rZXljb2wge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50YWJsZSB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICBAaWYgJHJ0bCA9PSB0cnVlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRiZy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICB0ciB7XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJnLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJHVuaXQtMyAkdW5pdC0yO1xuICAgIH1cbiAgICB0aCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6ICRib3JkZXItd2lkdGgtbGc7XG4gICAgfVxuXG4gICAgLnRhYmxlLWtleWNvbCAmIHtcbiAgICAgICAgdHIgPiB0ZDpmaXJzdC1jaGlsZCwgdHIgPiB0aDpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuaW1nLCAudmlkZW8tY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyptYXJnaW46IDNyZW0gYXV0bzsqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuXG4gICAgJi5ib3JkZXIge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTZlNmU2ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICB9XG5cbiAgICAmLnNoYWRvdyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbn1cblxuaHIge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbn1cblxudWwsIG9sIHtcbiAgICBtYXJnaW46IDAgMCAxLjJyZW0gMDtcblxuICAgIHVsLCBvbCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cblxuLmJ1dHRvbi1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBidXR0b24tcHJpbWFyeTtcbiAgfVxuXG4jY2hhcHRlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtd2lkdGg6IDYwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIGgzIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuXG4gICAgICAgICYgKyBoMSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gYXV0byAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRncmF5LWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNib2R5LWlubmVyIHtcblxuICAgIDp0YXJnZXQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IC02MHB4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxufVxuXG4vLyBEZWJ1ZyBDb2RlIEJsb2Nrc1xucHJlLnhkZWJ1Zy12YXItZHVtcCB7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbiNib2R5LWlubmVyIHtcblxuICAgIHByZSB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgICAgIDo6c2VsZWN0aW9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWxlY3Rpb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlIHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAucHJpc20td3JhcHBlciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmNvZGUtdG9vbGJhciB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgICAgIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICAgICAgICBmb250LWZhbWlseTogJG1vbm8tZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgcHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgcGFkZGluZzogaW5pdGlhbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm8tbWFyZ2luLXRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xZW07XG4gICAgICAgIC5jb2RlLXRvb2xiYXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgID4gcHJlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAubm8tbWFyZ2luLWJvdHRvbSAuY29kZS10b29sYmFyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAubGluZS1oaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJGhpZ2hsaWdodC1jb2xvciwgMC4zKSA3MCUsIHJnYmEoJGhpZ2hsaWdodC1jb2xvciwgMCkpO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGhpZ2hsaWdodC1jb2xvciwgMzAlKTtcbiAgICAgICAgICAgIC8vY29sb3I6ICM5OTk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgdG9wOiAwLjE1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBJY29uIFR3ZWFrc1xuaS5mYSB7XG4gICAgJi5mYS1oZWFydCwgJi5mYS1oZWFydC1vIHtcbiAgICAgICAgJi5wdWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogIzkyMFxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBGb250IFdlaWdodHNcbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5oZWF2eSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmxpZ2h0IHtcbiAgICBmb250LXdlaWdodDogMjAwO1xufVxuXG4vLyBFcnJvciBjb25maWd1cmF0aW9uXG4jZXJyb3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogNXJlbTtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgIH1cbn1cblxuLy8gTWVzc2FnZXNcbiNtZXNzYWdlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbn1cblxuLy8gTGlzdHNcbnVsLFxub2wge1xuICAgIG1hcmdpbi1sZWZ0OiAkdW5pdC04O1xuXG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHVuaXQtODtcbiAgICB9XG59XG5cbnVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjIG91dHNpZGU7XG59XG5cbm9sIHtcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsIG91dHNpZGU7XG59XG5cbiNuYXZpZ2F0aW9uIHtcbiAgICBhLmdpdGh1Yi1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFRhYnNcbiR0YWJzLWNvbG9yOiAjNzY3NjkzO1xuJHRhYnMtYmc6ICNGOEY5RkE7XG4udGFicy13cmFwcGVyIHtcblxuICAgICYudWktdGhlbWUtYmFkZ2VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHRhYnMtYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkdGFicy1iZywgMiUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgIC50YWJzLW5hdiB7XG4gICAgICAgICAgICBtYXJnaW46IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHRhYnMtYmcsIDYlKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHRhYnMtYmcsIDQwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOm5vdCguY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkdGFicy1iZywgOSUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudGFicyB7XG4gICAgICAgICAgICAudGFiIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDA7XG5cbiAgICAgICAgICAgICAgICBwcmUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8vIE5vdGljZXNcbi5ub3RpY2VzIHtcbiAgICBtYXJnaW46IDEuNXJlbSAwO1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW0gMC41cmVtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5pbmZvIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZjBhZDRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmNmOGYyO1xuICAgICAgICBjb2xvcjogI2RmOGExMztcbiAgICB9XG5cbiAgICAmLndhcm5pbmcge1xuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNkOTUzNGY7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZGY3Zjc7XG4gICAgICAgIGNvbG9yOiAjYjUyYjI3O1xuICAgIH1cblxuICAgICYubm90ZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgIzViYzBkZTtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjhmYTtcbiAgICAgICAgY29sb3I6ICMyOGExYzU7XG4gICAgfVxuXG4gICAgJi50aXAge1xuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICM1Y2I4NWM7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMWY5ZjE7XG4gICAgICAgIGNvbG9yOiAjM2Q4YjNkO1xuICAgIH1cblxufVxuXG4vLyBUd2lnIFRhZ3MvRmlsdGVycy9GdW5jdGlvbnNcbi50d2lnX19oZWFkZXJzIHtcbiAgICBoMyArIGg0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLS4zcmVtO1xuICAgICAgICBmb250LXNpemU6IDEyMCU7XG4gICAgfVxuXG4gICAgaDMgY29kZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogZGFya2VuKCRib2R5LWZvbnQtY29sb3IsIDEwJSk7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxufVxuXG5cbi8vIFdyYXAgZml4ZXNcbmF1ZGlvIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnByZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOm5vdCguY29tbWFuZC1saW5lKSB7XG5cbiAgICAmLCAmPmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIH1cbn1cblxuLnRudHNlYXJjaC1yZXN1bHRzIGVtIHtcbiAgICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRib2R5LWZvbnQtY29sb3IsICRoaWdobGlnaHQtY29sb3IpO1xuICAgIGJvcmRlci1ib3R0b206ICR1bml0LW8gc29saWQgZGFya2VuKCRoaWdobGlnaHQtY29sb3IsIDE1JSk7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJHVuaXQtbyAkdW5pdC1oIDA7XG59XG5cbi8vcHJlLmNvbW1hbmQtbGluZSB7XG4vLyAgICAmLCAmID4gY29kZSB7XG4vLyAgICAgICAgd29yZC1icmVhazogaW5pdGlhbDtcbi8vICAgICAgICB3aGl0ZS1zcGFjZTogcHJlXG4vLyAgICB9XG4vL31cblxuIiwiLy9MaWZlY3ljbGVcbi5saWZlY3ljbGUge1xuXG4gICAgI2JvZHktaW5uZXIge1xuXG4gICAgICAgIC5sZXZlbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHggMTBweCA0cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sZXZlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvbCBsaSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBvbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5sZXZlbC0xIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCR0dXJxdW9pc2UsNTYlKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkdHVycXVvaXNlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdHVycXVvaXNlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0dXJxdW9pc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmxldmVsLTIgICB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkZW1lcmFsZCw0OSUpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICRlbWVyYWxkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZW1lcmFsZDtcblxuICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGVtZXJhbGQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmxldmVsLTMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHBldGVyLXJpdmVyLDQ0JSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJHBldGVyLXJpdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcGV0ZXItcml2ZXI7XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwZXRlci1yaXZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGV2ZWwtNCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkd2V0LWFzcGhhbHQsNjMlKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkd2V0LWFzcGhhbHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3ZXQtYXNwaGFsdDtcblxuICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdldC1hc3BoYWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJmb3JtIHtcbiAgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICBzcGFuLnJlcXVpcmVkIHtcbiAgICBjb2xvcjogJGVycm9yLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gIH1cblxuICAuZm9ybS1pbnB1dFt0eXBlPXJhbmdlXSB7XG4gICAgYXBwZWFyYW5jZTogc2xpZGVyLWhvcml6b250YWw7XG4gICAgJjpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldCBzb21lIGRlZmF1bHRzIGZvciBRdWFyayBUaGVtZSAqKi9cbiAgLmZvcm0tZ3JvdXA6bm90KC5mb3JtLWZpZWxkLXRvZ2dsZWFibGUpIHtcbiAgICAuY2hlY2tib3hlcyB7XG4gICAgICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6ICgoJGNvbnRyb2wtc2l6ZS1zbSAtICRsaW5lLWhlaWdodCkgLyAyKSAkY29udHJvbC1wYWRkaW5nLXggKCgkY29udHJvbC1zaXplLXNtIC0gJGxpbmUtaGVpZ2h0KSAvIDIpICgkY29udHJvbC1pY29uLXNpemUgKyAkY29udHJvbC1wYWRkaW5nLXgpO1xuICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4jZ3Jhdi1sb2dpbiB7XG5cbiAgPiBmb3JtIHtcbiAgICBtYXJnaW46IDJyZW0gYXV0byAwO1xuICAgIG1heC13aWR0aDogMzUwcHg7XG4gIH1cbiAgLmZvcm0tbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZvcm0tZGF0YSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cbiAgLmZvcm0taW5wdXQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYnV0dG9uLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmZvcm0tZGF0YS5yZW1lbWJlcm1lIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5sb2dpbi1mb3JtIHtcbiAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tcHJpbWFyeTtcbiAgICB9XG4gIH1cblxuICAudHdvZmEtZm9ybSB7XG4gICAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXByaW1hcnk7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmRlZmF1bHQtYW5pbWF0aW9uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8gUHVsc2UgQW5pbWF0aW9uXG4ucHVsc2Uge1xuICBhbmltYXRpb24tbmFtZTogcHVsc2VfYW5pbWF0aW9uO1xuICBhbmltYXRpb24tZHVyYXRpb246IDIwMDBtcztcbiAgdHJhbnNmb3JtLW9yaWdpbjo3MCUgNzAlO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlX2FuaW1hdGlvbiB7XG4gIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAzMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDcwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgODAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuIiwiW2RhdGEtc2ltcGxlYmFyXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbn1cblxuLnNpbXBsZWJhci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbn1cblxuLnNpbXBsZWJhci1tYXNrIHtcbiAgICBkaXJlY3Rpb246IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMDtcbn1cblxuLnNpbXBsZWJhci1vZmZzZXQge1xuICAgIGRpcmVjdGlvbjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICByZXNpemU6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnNpbXBsZWJhci1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpcmVjdGlvbjogaW5oZXJpdDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTsgLyogUmVxdWlyZWQgZm9yIGhvcml6b250YWwgbmF0aXZlIHNjcm9sbGJhciB0byBub3QgYXBwZWFyIGlmIHBhcmVudCBpcyB0YWxsZXIgdGhhbiBuYXR1cmFsIGhlaWdodCAqL1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIFNjcm9sbCBvbiB0aGlzIGVsZW1lbnQgb3RoZXJ3aXNlIGVsZW1lbnQgY2FuJ3QgaGF2ZSBhIHBhZGRpbmcgYXBwbGllZCBwcm9wZXJseSAqL1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogTm90IHJlcXVpcmVkIGZvciBob3Jpem9udGFsIHNjcm9sbCB0byB0cmlnZ2VyICovXG4gICAgbWF4LWhlaWdodDogMTAwJTsgLyogTmVlZGVkIGZvciB2ZXJ0aWNhbCBzY3JvbGwgdG8gdHJpZ2dlciAqL1xufVxuXG4uc2ltcGxlYmFyLWNvbnRlbnQ6YmVmb3JlLFxuLnNpbXBsZWJhci1jb250ZW50OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnNpbXBsZWJhci1wbGFjZWhvbGRlciB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zaW1wbGViYXItaGVpZ2h0LWF1dG8tb2JzZXJ2ZXItd3JhcHBlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgICBtYXgtd2lkdGg6IDFweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogLTE7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZmxleC1ncm93OiBpbmhlcml0O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtYmFzaXM6IDA7XG59XG5cbi5zaW1wbGViYXItaGVpZ2h0LWF1dG8tb2JzZXJ2ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAwJTtcbiAgICB3aWR0aDogMTAwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogLTE7XG59XG5cbi5zaW1wbGViYXItdHJhY2sge1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5bZGF0YS1zaW1wbGViYXJdLnNpbXBsZWJhci1kcmFnZ2luZyAuc2ltcGxlYmFyLXRyYWNrIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2ltcGxlYmFyLXNjcm9sbGJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDdweDtcbiAgICBtaW4taGVpZ2h0OiAxMHB4O1xufVxuXG4uc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgMC41KTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG59XG5cbi5zaW1wbGViYXItdHJhY2sgLnNpbXBsZWJhci1zY3JvbGxiYXIuc2ltcGxlYmFyLXZpc2libGU6YmVmb3JlIHtcbiAgICAvKiBXaGVuIGhvdmVyZWQsIHJlbW92ZSBhbGwgdHJhbnNpdGlvbnMgZnJvbSBkcmFnIGhhbmRsZSAqL1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDBzIGxpbmVhcjtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItdmVydGljYWwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItdmVydGljYWwgLnNpbXBsZWJhci1zY3JvbGxiYXI6YmVmb3JlIHtcbiAgICB0b3A6IDJweDtcbiAgICBib3R0b206IDJweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCB7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDExcHg7XG59XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLWhvcml6b250YWwgLnNpbXBsZWJhci1zY3JvbGxiYXI6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMnB4O1xuICAgIHJpZ2h0OiAycHg7XG59XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLWhvcml6b250YWwgLnNpbXBsZWJhci1zY3JvbGxiYXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtaW4td2lkdGg6IDEwcHg7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8qIFJ0bCBzdXBwb3J0ICovXG5bZGF0YS1zaW1wbGViYXItZGlyZWN0aW9uPVwicnRsXCJdIC5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLXZlcnRpY2FsIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xufVxuXG4uaHMtZHVtbXktc2Nyb2xsYmFyLXNpemUge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDUwMHB4O1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuIiwiXG5cblxuXG4udXNlci1wcm9maWxlIHtcbiAgICAvKnBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAqL1xuICAgIC8qZ2FwOiAxMHB4OyovIFxuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG59XG5cblxuXG4vKlxuLnVzZXItcHJvZmlsZXtcbiAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuXG4gICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICB9XG59XG4qL1xuXG5cbi8qXG4ucHJvZmlsZS1saW5rIHtcbiAgICBjb2xvcjogIzAwN2JmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuKi9cbiNuYXZpZ2F0aW9uIHtcbiAgICBhLnByb2ZpbGUtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgIFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZyAqL1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdmF0YXItY2lyY2xlIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc0NWIxOTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKlxuI25hdmlnYXRpb24ge1xuICAgIGEucHJvZmlsZS1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuKi9cblxuXG5cbi5wcm9maWxlLWxpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKlxuLmRyb3Bkb3duLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDQwcHg7IFxuICAgIHJpZ2h0OiAxNzVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgei1pbmRleDogMTAwMDtcbn1cbiovXG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogICAgICAgICAgICAgICAgRHJvcGRvd24gQ29udGFpbmVyICAgICAgICAgICAgICAgICovXG4vKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLmRyb3Bkb3duLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgICAgLyog4oaQIFZlcnkgaW1wb3J0YW50ISAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgIC8qIGtlZXBzIGl0IGNvbXBhY3QgKi9cbn1cblxuLyogVHJpZ2dlciAodGhlIHRoaW5nIHlvdSBjbGljay9ob3ZlcikgKi9cbi5kcm9wZG93bi10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7ICAgICAgICAgICAgICAgLyogc3BhY2UgYmV0d2VlbiBhdmF0YXIgYW5kIHRleHQgKi9cbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXM7XG59XG5cbi5kcm9wZG93bi10cmlnZ2VyOmhvdmVyLFxuLmRyb3Bkb3duLXRyaWdnZXI6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IC8qIG9yIHlvdXIgdGhlbWUgY29sb3IgKi9cbn1cblxuLyogVGhlIGFjdHVhbCBkcm9wZG93biAqL1xuLmRyb3Bkb3duLW1lbnUge1xuICAgIC8qIEhpZGRlbiBieSBkZWZhdWx0ICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBcbiAgICAvKiBQb3NpdGlvbmluZyBtYWdpYyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7ICAgICAgICAgICAgICAvKiByaWdodCB1bmRlciB0aGUgdHJpZ2dlciAqL1xuICAgIGxlZnQ6IDUwJTsgICAgICAgICAgICAgIC8qIGNlbnRlciB1bmRlciB0cmlnZ2VyICovXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyAvKiBwZXJmZWN0IGNlbnRlcmluZyAqL1xuICAgIFxuICAgIC8qIE9yIHJpZ2h0LWFsaWduZWQgKG1vcmUgY29tbW9uIGZvciB1c2VyIG1lbnVzKTogKi9cbiAgICAvKiBsZWZ0OiAwOyAqL1xuICAgIC8qIHRyYW5zZm9ybTogbm9uZTsgKi9cbiAgICAvKiByaWdodDogMDsgKi8gICAgICAgICAgIC8qIOKGkCB1c2UgdGhpcyBjb21iaW5hdGlvbiBmb3IgcmlnaHQtYWxpZ24gKi9cbiAgICBcbiAgICBtaW4td2lkdGg6IDE4MHB4OyAgICAgICAgICAgLyogb3IgMjAwcHgsIHdoYXRldmVyIGZpdHMgYmVzdCAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggcmdiYSgwLDAsMCwwLjE1KTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG1hcmdpbi10b3A6IDRweDsgICAgICAgICAgIC8qIHRpbnkgYnJlYXRoaW5nIHJvb20gKi9cbn1cblxuLyogT3B0aW9uYWw6IGxpdHRsZSBhcnJvdy90cmlhbmdsZSBvbiB0b3AgKi9cbi5kcm9wZG93bi1tZW51OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTZweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHdoaXRlO1xuICAgIHotaW5kZXg6IDEwMDE7XG59XG5cbi8qIFNob3cgZHJvcGRvd24gKi9cbi5kcm9wZG93bi1jb250YWluZXI6aG92ZXIgLmRyb3Bkb3duLW1lbnUsXG4uZHJvcGRvd24tY29udGFpbmVyLnNob3cgLmRyb3Bkb3duLW1lbnUgeyAgICAvKiAuc2hvdyBmb3IgSlMgY2xpY2sgdmVyc2lvbiAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cblxuXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG59XG5cblxuLmRyb3Bkb3duLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5cblxuLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG59XG5cblxuXG4udXNlci1wcm9maWxlOmhvdmVyIC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG5cblxuXG5cblxuXG5cbiNjaGFwdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIFxufVxuXG5cblxuaDQgPiAua2F0ZXgge1xuZm9udC1zaXplOiA0ZW07XG59XG5cblxuI3RvcC1iYXIge1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDE0cmVtO1xuICAgIC8qZGlzcGxheTogLW1zLWZsZXhib3g7Ki9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWRlZWYxO1xuICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5cblxuXG4ucHVsc2UtaWNvbiB7XG5cbiAgICBjb2xvcjogcmVkO1xufVxuXG5cbi5pbnRlcmFjdGl2ZS1pY29uIHtcbiBjb2xvcjogIzE4YzNmNztcbn1cblxuLnByYWN0aWNldGltZS1pY29uIHtcbiBjb2xvcjogIzE0ZGIxZDtcbn1cblxuXG5cblxuLnF1ZXN0aW9uLWFyZWEge1xuIC8qYm9yZGVyOiAxcHggc29saWQgI2RkZDsgcGFkZGluZzogMTBweDsqL1xuXG4gd29yZC13cmFwOiBicmVhay13b3JkOyAgICAgICAvKiBJbnRlcm5ldCBFeHBsb3JlciA1LjUrICovXG4gYm9yZGVyOiAxcHggc29saWQgIzVjYjg1YztcbiAvKmJvcmRlci1yaWdodDogMTBweCBzb2xpZCAjNWNiODVjOyovXG5cbiBiYWNrZ3JvdW5kOiAjZjdmYmY3O1xuIC8qY29sb3I6ICMzZDhiM2Q7Ki9cbiBib3JkZXItcmFkaXVzOiAxMHB4O1xuIHBhZGRpbmctdG9wOiAwLjRlbTtcbiBwYWRkaW5nLWxlZnQ6IDFlbTtcbiBwYWRkaW5nLWJvdHRvbTogMC40ZW07XG59XG5cbi5oaWdobGlnaHQge1xuYmFja2dyb3VuZC1jb2xvcjogI2ZmZmYwMDU3OyAvKiBIaWdobGlnaHQgY29sb3IgKi9cbnRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41czsgLyogU21vb3RoIHRyYW5zaXRpb24gKi9cbn1cblxuXG4jbGVhcm4ge1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBmb250LXNpemU6IDJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1mYW1pbHk6IFwiQnJ1c2ggU2NyaXB0IE1UXCIsIEN1cnNpdmUsIEN1cnNpdmU7XG59XG5cbi5sb2dpbi1zdGF0dXMtd3JhcHBlciB7XG5tYXJnaW4tbGVmdDogMWVtO1xuanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5cbiNsb2dpbi1lbGVtZW50cyBpbWcge1xuXG5tYXJnaW46IDA7XG59XG5cblxuI2xvZ2luLWVsZW1lbnRzIGEuZ2l0aHViLWxpbmsge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG59XG5cbiNsb2dpbi1lbGVtZW50cyBhLnByb2ZpbGUtbGluayB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuXG5cbiNsb2dpbi1iYXIgI2xvZ2luLWVsZW1lbnRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG5cbiNsb2dpbi1iYXIgI2xvZ2luLWVsZW1lbnRzID4gYSwgI2xvZ2luLWJhciAjbG9naW4tZWxlbWVudHMgc3BhbiB7XG4gICAgd2lkdGg6IDE1JTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWRlZWYxO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgZWFzZSwgY29sb3IgMC41cyBlYXNlO1xufVxuXG4jbG9naW4tYmFyICNsb2dpbi1lbGVtZW50cyA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZGVlZjE7XG4gICAgY29sb3I6ICMwZTUxYWI7XG59XG5cblxuI2xvZ2luLWVsZW1lbnRzIGEuZ2l0aHViLWxpbmsge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG59XG5cblxuXG4jbG9naW4tYmFyIHtcbiAgICAvKnBvc2l0aW9uOiBmaXhlZDsqL1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VkZWVmMTtcbiAgICB6LWluZGV4OiAzO1xuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMTRyZW07XG59XG5cblxuLmVvX2pzbW9sIHtcblxuYm9yZGVyOiAxMDtcblxufVxuXG5cblxuQGltcG9ydCB1cmwoJy8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcycpO1xuXG5cbiNib2R5IGltZywgI2JvZHkgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwcmVtIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cbmRpdltpZCQ9J19hcHBsZXRpbmZvdGFibGVkaXYnXXtcbiAgXG4gIGJvcmRlcjogNXB4IHNvbGlkICNmMWY5ZjEgO1xuYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5cbmlucHV0LFxubGFiZWwsXG5zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmU7IFxuICB9XG5cbiNjaGFwdGVyIGgxIHtcbiAgICBmb250LXNpemU6IDMuMjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNGMEYyRjQ7XG59XG5cblxuXG4vKiBDU1MgdG8gc3R5bGUgUHJlc2VudGF0aW9uIFBsdWdpbiBzbGlkZXMgKi9cbi5yZXZlYWwgLnNsaWRlcyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJldmVhbCBoMSwgLnJldmVhbCBoMiwgLnJldmVhbCBoMywgLnJldmVhbCBoNCwgLnJldmVhbCBoNSwgLnJldmVhbCBoNiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cblxuI2hlYWRlciAubG9nbyBpbWcsICNoZWFkZXIgLmxvZ28gc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgIC8qaGVpZ2h0OiA3MHB4OyovXG59XG5cbi5pZnJhbWUtY29udGFpbmVyIHtcbiAgLyogb3ZlcmZsb3c6IGhpZGRlbjsgKi9cbiAgLyogMTY6OSBhc3BlY3QgcmF0aW8gKi9cbiAgcGFkZGluZy10b3A6IDU2LjI1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaWZyYW1lLWNvbnRhaW5lciBpZnJhbWUge1xuICAgYm9yZGVyOiAwO1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgbGVmdDogMDtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMDtcbiAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZW9fanNtb2wgPiBkaXYge1xuXG5tYXJnaW46IDAgYXV0bztcblxufVxuXG4uZWRpdHBhZ2Uge1xuICBcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDIwcHg7XG4gIHJpZ2h0OiA4MHB4OyBcblxuICBwYWRkaW5nOiA1cHggNnB4O1xuICBiYWNrZ3JvdW5kOiAjRjY3RTQwO1xuICBjb2xvcjogI2ZmZjtcbiAgXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuLm5vdGVzX3RleHQge1xuXG4gd29yZC13cmFwOiBicmVhay13b3JkOyAgICAgICAvKiBJbnRlcm5ldCBFeHBsb3JlciA1LjUrICovXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICMwMDkwRDk7XG4gIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCAjMDA5MEQ5O1xuICAgYmFja2dyb3VuZDogI2YzZjFmOTtcbiAgIGNvbG9yOiAjMDA5MEQ5O1xuICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICBwYWRkaW5nLWJvdHRvbTogMC40ZW07XG59XG5cbi5ub3Rlc190ZXh0IGxlZ2VuZCB7XG4gY29sb3I6ICMwMDkwRDk7XG4gbWFyZ2luLWJvdHRvbTogMC40ZW07XG59XG5cblxuLnBpdGZhbGxfdGV4dCB7XG4gd29yZC13cmFwOiBicmVhay13b3JkOyAgICAgICAvKiBJbnRlcm5ldCBFeHBsb3JlciA1LjUrICovXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNkNjE0NDg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkICNkNjE0NDg7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjFmMztcbiAgICBjb2xvcjogcmVkO1xuICAgYm9yZGVyLXJhZGl1czogNXB4OyAgXG4gICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgIHBhZGRpbmctYm90dG9tOiAwLjRlbTtcbn1cblxuLnBpdGZhbGxfdGV4dCBsZWdlbmQge1xuIGNvbG9yOiByZWQ7XG4gbWFyZ2luLWJvdHRvbTogMC40ZW07XG59XG5cblxuLmFjdGlvbl90ZXh0IHtcblxuXG4gXG4gd29yZC13cmFwOiBicmVhay13b3JkOyAgICAgICAvKiBJbnRlcm5ldCBFeHBsb3JlciA1LjUrICovXG4gYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgIzVjYjg1YztcbiBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgIzVjYjg1YztcbiBiYWNrZ3JvdW5kOiAjZjFmOWYxO1xuIGNvbG9yOiAjM2Q4YjNkO1xuIGJvcmRlci1yYWRpdXM6IDVweDtcbiBwYWRkaW5nLWxlZnQ6IDFlbTtcbiBwYWRkaW5nLWJvdHRvbTogMC40ZW07XG59XG5cbi5hY3Rpb25fdGV4dCBsZWdlbmQge1xuIGNvbG9yOiBncmVlbjtcbiBtYXJnaW4tYm90dG9tOiAwLjRlbTtcbn1cblxuXG4uYWN0aW9uX3RleHQgdWwge1xuXG5tYXJnaW4tdG9wOiAwZW07XG5tYXJnaW4tYm90dG9tOiAwZW07XG4gIFxufVxuXG4uYWN0aW9uX3RleHQgbGVnZW5kIHtcbiBjb2xvcjogZ3JlZW47XG59XG5cblxuXG5cblxuLypcbi5hY3Rpb25fdGV4dDpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcbiAgICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuKi9cblxuXG5cblxuXG5cblxuXG4ubm90aWNlcyB7XG4gICAgcGFkZGluZzogMXB4IDFweCAxcHggMzBweDtcbiAgICBtYXJnaW46IDE1cHggMDtcbn1cblxuLm5vdGljZXMgcCB7XG5cbn1cblxuLm5vdGljZXMueWVsbG93IHtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjZjBhZDRlO1xuICAgIGJhY2tncm91bmQ6ICNmY2Y4ZjI7XG4gICAgY29sb3I6ICNkZjhhMTM7XG59XG5cbi5ub3RpY2VzLnJlZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2Q5NTM0ZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmN2Y3O1xuICAgIGNvbG9yOiAjYjUyYjI3O1xufVxuXG4ubm90aWNlcy5ibHVlIHtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjNWJjMGRlO1xuICAgIGJhY2tncm91bmQ6ICNmNGY4ZmE7XG4gICAgY29sb3I6ICMyOGExYzU7XG59XG5cbi5ub3RpY2VzLmdyZWVuIHtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjNWNiODVjO1xuICAgIGJhY2tncm91bmQ6ICNmMWY5ZjE7XG4gICAgY29sb3I6ICMzZDhiM2Q7XG59XG5cblxuLmFjdGlvbi1idG4ge1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogN3B4OyBcbiAgYmFja2dyb3VuZDogIzVjYjg1YztcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDAgIzUyYTU1MjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA3cHg7IFxuIH1cbiAgXG4uYWN0aW9uLWJ0bjphY3RpdmUsIC5hY3Rpb24tYnRuLXNlY29uZGFyeTphY3RpdmUge1xuICBtYXJnaW46IDJweCAwIC0ycHggMDtcbn1cblxuLmFjdGlvbi1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxMzhhMTM7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMCAjNTJhNTUyO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLmFjdGlvbi1idG46YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDFweCAwICM1MmE1NTI7XG59XG5cbi5hY3Rpb24tYnRuLXNtIHtcbiAgbWFyZ2luOiAycHggMnB4IDJweCAycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogM3B4IDEycHg7IFxuICBiYWNrZ3JvdW5kOiAjNWNiODVjO1xuICBjb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAzcHggMCAjNTJhNTUyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgfVxuICBcbi5hY3Rpb24tYnRuLXNtOmFjdGl2ZSwgLmFjdGlvbi1idG4tc20tc2Vjb25kYXJ5OmFjdGl2ZSB7XG4gIG1hcmdpbjogMnB4IDAgLTJweCAwO1xufVxuXG4uYWN0aW9uLWJ0bi1zbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzEzOGExMztcbiAgICBib3gtc2hhZG93OiAwIDNweCAwICM1MmE1NTI7XG4gICAgY29sb3I6ICNmZmY7XG59XG4uYWN0aW9uLWJ0bi1zbTphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgIzUyYTU1Mjtcbn1cblxuQG1lZGlhIHByaW50IHtcblx0Lm5vcHJpbnQge2Rpc3BsYXk6bm9uZX1cblx0LnByaW50b25seSB7ZGlzcGxheTpibG9ja31cbn1cbkBtZWRpYSBzY3JlZW4ge1xuXHQubm9wcmludCB7ZGlzcGxheTpibG9ja31cblx0LnByaW50b25seSB7ZGlzcGxheTpub25lfVxufVxuXG5cbi8qYWRkIGV4dHJhIGxldmVsIG9mIGNvbGxhcHNlKi9cbi8qIEhpZGVzIHRoZSBzdWItbWVudSBpdGVtIGlmIHBhcmVudCBub3QgYWN0aXZlICovXG4uZGQtaXRlbSAuZGQtaXRlbSB1bCBsaSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRkLWl0ZW0gLmRkLWl0ZW0uYWN0aXZlIHVsIGxpLFxuLmRkLWl0ZW0ucGFyZW50ID4gdWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIEhpZGVzIHRoZSBzdWItc3ViLW1lbnUgbWVudS1pdGVtIGlmIHBhcmVudCBub3QgYWN0aXZlICovXG4uZGQtaXRlbS5wYXJlbnQgPiB1bCA+IGxpLmRkLWl0ZW0uYWN0aXZlID4gdWwgPiBsaSA+IHVsID4gbGkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kZC1pdGVtLnBhcmVudCA+IHVsID4gbGkuZGQtaXRlbS5hY3RpdmUgPiB1bCA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNlYXJjaC13cmFwcGVyIC5zZWFyY2gtaW5wdXQge1xuXHR3aWR0aDogODAlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICBjb2xvcjogIzU1NTtcblx0XG59XG5cbi5zZWFyY2gtc3VibWl0IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdGJhY2tncm91bmQ6ICNlZWU7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdGhlaWdodDogMzRweDtcbn1cblxuLnNlYXJjaC1zdWJtaXQgaW1nIHtcblx0d2lkdGg6IDMwcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5zZWFyY2gtaW1hZ2Uge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLnNlYXJjaC1pdGVtIHtcblx0bWFyZ2luLWxlZnQ6IDEzMHB4O1xuXHRtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuXG4uc2VhcmNoLWl0ZW0gcCB7XG5cdG1hcmdpbjogMDtcbn1cblxuLnNlYXJjaC10aXRsZSBoMyB7XG5cdG1hcmdpbjogMDtcbn1cblxuLnNlYXJjaC1kZXRhaWxzIHtcblx0Zm9udC1zaXplOiAxM3B4O1xufVxuXG4uc2VhcmNoLXJvdzpsYXN0LWNoaWxkIGhyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuXG5cbiN0b3AtYmFyICNuYXZpZ2F0aW9uIHtcbiAgICB3aWR0aDogODAlO1xuICAgIC8qZGlzcGxheTogLW1zLWZsZXhib3g7Ki9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0F1QmtZQSxPQUFPLENBQUMsNEVBQUk7QVRsWVosQUFBQSxXQUFXLENBQUMsRUFDUixVQUFVLEVBQUUsS0FBSyxHQW1ScEI7O0FBcFJELEFBR0ksV0FITyxDQUdQLGtCQUFrQixDQUFDLEVBQ2YsUUFBUSxFQUFFLEtBQUssRUFDZixHQUFHLEVBQUUsTUFBTSxFQUNYLElBQUksRUFBRSxNQUFNLEVBQ1osS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLEVBQUUsTUFBTSxFQUNkLFdBQVcsRUFBRSxNQUFNLEVBQ25CLE9BQU8sRUFBRSxDQUFDLEVBQ1YsU0FBUyxFQUFFLGVBQWUsR0FDN0I7O0FBWkwsQUFjSSxXQWRPLENBY1AsbUJBQW1CLENBQUMsRUFDaEIsT0FBTyxFQUFFLE9BQU8sR0FDbkI7O0FBaEJMLEFBa0JJLFdBbEJPLENBa0JQLG1CQUFtQixDQUFDLEVBQ2hCLFVBQVUsRWJPTCxxQkFBTyxHYU5mOztBQXBCTCxBQXNCSSxXQXRCTyxDQXNCUCxjQUFjLENBQUMsRUFDWCxLQUFLLEViY0csS0FBSyxFYWJiLEtBQUssRUFBTyx3QkFBSSxFQUNoQixVQUFVLEVBQUUsT0FBTyxHQTBQdEI7O0FBblJMLEFBMkJRLFdBM0JHLENBc0JQLGNBQWMsQUFLVCxPQUFPLENBQUMsRUFDTCxRQUFRLEVBQUUsS0FBSyxFQUNm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 */
