:root{--page-teaser-bg: var(--c-2180);--page-teaser-content-color: var(--c-2110);--page-teaser-min-height: 15rem;--page-premium-theme-color: var(--c-2010);--page-premium-theme-bg: var(--c-2110);--page-premium-color-line-height: 1rem}.page-premium-color-line{height:var(--page-premium-color-line-height);line-height:0;font-size:0;overflow:hidden}[data-bg=page-theme]{background-color:var(--page-premium-theme-bg)}.page-teaser{position:relative;z-index:6;background-color:var(--page-teaser-bg);display:flex;min-height:var(--page-teaser-min-height);padding:0}.page-teaser__head{overflow:hidden;position:relative;display:flex;height:auto;min-height:100%;width:100%;flex:1;flex-direction:column-reverse}.page-teaser__img{width:100%;z-index:1;flex:1;position:relative}.page-teaser__img img{width:100%}.page-teaser__img:after{background:var(--overlay-images);display:block;position:absolute;left:0;top:0;width:100%;height:100%;content:""}.page-teaser-info{--teaser-info-padding: 0 0 var(--d70) 0;position:relative;z-index:10;padding:var(--teaser-info-padding);display:grid;background-color:var(--c-2010);grid-template-rows:auto auto auto;grid-template-areas:"badge" "title" "buttons"}.page-teaser-info .page-teaser-info__title{grid-area:title;padding-top:var(--d60)}.page-teaser-info .page-teaser-info__badge{grid-area:badge}.page-teaser-info .page-teaser-info__badge:not(:empty){margin:calc(-1*var(--d40)) 0 0 calc(-1*var(--rds-grid-padding))}.page-teaser-info .article-cofunding-badge__small{color:var(--c-2010)}.page-teaser-info .article-cofunding-badge__small.alert__button{--myty-text-link-decoration: underline;--myty-text-link-decoration-thickness: 2px;--myty-text-link-underline-offset: 5px;--myty-text-link-decoration: underline;-webkit-text-decoration:var(--myty-text-link-decoration);text-decoration:var(--myty-text-link-decoration);-webkit-text-decoration-style:solid;text-decoration-style:solid;text-decoration-thickness:var(--myty-text-link-decoration-thickness);text-underline-offset:var(--myty-text-link-underline-offset);transition:color 300ms,-webkit-text-decoration 300ms;transition:text-decoration 300ms,color 300ms;transition:text-decoration 300ms,color 300ms,-webkit-text-decoration 300ms}.page-teaser-info .article-cofunding-badge__small.alert__button.is-active,.page-teaser-info .article-cofunding-badge__small.alert__button:active{--myty-text-decoration-thickness: 2px}.page-teaser-info .article-cofunding-badge__small.alert__button.has-focus,.page-teaser-info .article-cofunding-badge__small.alert__button:hover,.page-teaser-info .article-cofunding-badge__small.alert__button:focus{--myty-btn-outline: none;--myty-text-link-decoration-thickness: 4px}.page-teaser-info .article-cofunding-badge__small.alert__button.is-disabled,.page-teaser-info .article-cofunding-badge__small.alert__button:disabled{--myty-text-link-decoration-thickness: 2px}.page-teaser-info .article-cofunding-badge__small.alert__button{--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor;color:var(--myty-text-link-color);-webkit-text-decoration-color:var(--myty-text-link-decoration-color);text-decoration-color:var(--myty-text-link-decoration-color)}.page-teaser-info .article-cofunding-badge__small.alert__button.is-active,.page-teaser-info .article-cofunding-badge__small.alert__button:active{--myty-text-link-color: currentColor;--myty-text-decoration-color: currentColor}.page-teaser-info .article-cofunding-badge__small.alert__button.has-hover,.page-teaser-info .article-cofunding-badge__small.alert__button:hover,.page-teaser-info .article-cofunding-badge__small.alert__button:focus{--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor}.page-teaser-info .article-cofunding-badge__small.alert__button.is-disabled,.page-teaser-info .article-cofunding-badge__small.alert__button:disabled{--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor}.page-teaser-info .article-cofunding-badge__small.alert__button .icon{color:currentColor;fill:currentColor}.btn--2010{--myty-btn-background-color: var(--c-2010);--myty-btn-color: var(--c-2010);--myty-btn-border-color: var(--c-2010);--myty-btn-box-shadow: none}.btn--2010:active,.btn--2010.is-active{--myty-btn-outline: none;--myty-btn-background-color: transparent;--myty-btn-color: var(--c-2010);--myty-btn-border-color: var(--c-2010);--myty-btn-box-shadow: none}.btn--2010:focus,.btn--2010.is-focus{--myty-btn-outline: 0.4rem solid var(--c-2010);--myty-btn-outline-offset: 0.4rem}.btn--2010:hover,.btn--2010.is-hover{--myty-btn-background-color: var(--c-2010);--myty-btn-color: var(--c-2110);--myty-btn-border-color: var(--c-2110);--myty-btn-outline: none;--myty-btn-box-shadow: 0 0 0 0.2rem var(--c-2110) inset}.btn--2010:disabled,.btn--2010.is-disabled{--myty-btn-background-color: var(--c-2110);--myty-btn-color: var(--c-2150);--myty-btn-border-color: var(--c-2150);--myty-btn-outline: none;--myty-btn-box-shadow: none}.application-hero{display:flex;flex-direction:row;gap:var(--d80)}@media (min-width: 991px){.page-teaser-info .page-teaser-info__badge:not(:empty){padding-top:var(--d70);margin:0 auto}.page-teaser-info .article-cofunding-badge__small.alert__button{--myty-text-link-underline-offset: 6px}.page-teaser-info{position:absolute;width:100%;height:100%;left:0;top:0;background-color:rgba(0,0,0,0);grid-template-rows:minmax(0, 1fr) auto auto;grid-template-areas:"badge" "title" "buttons"}.page-teaser-info .page-teaser-info__title{display:flex;flex-direction:column-reverse;color:var(--c-2010);text-shadow:0 0 15px rgba(0,0,0,.5)}.page-teaser-info__buttons{color:var(--c-2010);display:flex;flex-direction:row;gap:var(--d80)}.page-teaser-info__buttons .btn--link{--myty-btn-background-color: transparent;--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor;color:var(--myty-text-link-color);-webkit-text-decoration-color:var(--myty-text-link-decoration-color);text-decoration-color:var(--myty-text-link-decoration-color)}.page-teaser-info__buttons .btn--link.is-active,.page-teaser-info__buttons .btn--link:active{--myty-text-link-color: currentColor;--myty-text-decoration-color: currentColor}.page-teaser-info__buttons .btn--link.has-hover,.page-teaser-info__buttons .btn--link:hover,.page-teaser-info__buttons .btn--link:focus{--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor}.page-teaser-info__buttons .btn--link.is-disabled,.page-teaser-info__buttons .btn--link:disabled{--myty-text-link-color: currentColor;--myty-text-link-decoration-color: currentColor}.page-teaser-info__buttons .btn--link .icon{color:currentColor;fill:currentColor}}@media (min-width: 1118px){:root{--page-teaser-min-height: 37rem}}@media (min-width: 1442px){.page-teaser-info .article-cofunding-badge__small.alert__button{--myty-text-link-underline-offset: 6px}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL3BhZ2VfcmVsYXRlZC41NjQxOGYyMy5jc3MiLCJtYXBwaW5ncyI6IkFBUUEsTUFDSSxnQ0FDQSwyQ0FDQSxnQ0FDQSwwQ0FDQSx1Q0FDQSx1Q0FFSix5QkFDSSw2Q0FDQSxjQUNBLFlBQ0EsZ0JBRUoscUJBQ0ksOENBR0osYUFDSSxrQkFDQSxVQUNBLHVDQUNBLGFBQ0EseUNBQ0EsVUFTSixtQkFDSSxnQkFDQSxrQkFDQSxhQUNBLFlBQ0EsZ0JBQ0EsV0FDQSxPQUNBLDhCQUVKLGtCQUNJLFdBQ0EsVUFDQSxPQUNBLGtCQUNBLHNCQUNJLFdBRUosd0JBQ0ksaUNBQ0EsY0FDQSxrQkFDQSxPQUNBLE1BQ0EsV0FDQSxZQUNBLFdBSVIsa0JBQ0ksd0NBQ0Esa0JBQ0EsV0FDQSxtQ0FDQSxhQUNBLCtCQUNBLGtDQUNBLDZDQUNJLENBR0osMkNBQ0ksZ0JBQ0EsdUJBRUosMkNBQ0ksZ0JBQ0EsdURBQ0ksZ0VBT1Isa0RBQ0ksb0JBQ0EsZ0VDdVFKLHVDQUNBLDJDQUNBLHVDQUlJLHVDQUVKLDBHQUNBLGdFQUNBLHFFQUNBLDZEQUNBLDRLQUNJLENBRUosaUpBS0ksc0NBRUosc05BTUkseUJBQ0EsMkNBRUoscUpBRUksMkNEclNBLGdFQ21USixxQ0FDQSxnREFDQSxrQ0FDQSxrSUFDQSxpSkFFSSxxQ0FDQSwyQ0FFSixzTkFHSSxxQ0FDQSxnREFFSixxSkFFSSxxQ0FDQSxnREFFSixzRUFDSSxtQkFDQSxrQkR2T0osV0FVWSw4SUFQQSx1Q0FHUSxxS0FIUixxQ0FHUSxpRkFIUixxQ0FHUSxtTUFIUiwyQ0FHUSx1S0EwQnhCLGtCQUNJLGFBQ0EsbUJBQ0EsZUUzT0osMEJGeUZRLHVEQUdRLHVCQUNBLGNBTVIsZ0VDNFNJLHVDRHhVWixrQkFxQ1Esa0JBQ0EsV0FDQSxZQUNBLE9BQ0EsTUFDQSwrQkFDQSw0Q0FDQSw2Q0FDSSxDQUlKLDJDQUNJLGFBQ0EsOEJBQ0Esb0JBQ0Esb0NBNkZSLDJCQUNJLG9CQUNBLGFBQ0EsbUJBQ0EsZUFHSixzQ0FDSSx5Q0N3TEoscUNBQ0EsZ0RBQ0Esa0NBQ0Esa0lBQ0EsNkZBRUkscUNBQ0EsMkNBRUosd0lBR0kscUNBQ0EsZ0RBRUosaUdBRUkscUNBQ0EsZ0RBRUosNENBQ0ksbUJBQ0EsbUJDL2FSLDJCRm1DWSxNQUNJLGlDRXBDaEIsMkJGbUdRLGdFQ2lUSSx3QyIsInNvdXJjZXMiOlsid2VicGFjazovL2xva2FsaGVsZGVuLmNoLy4vcHJvamVjdHMvZGVmYXVsdC9zcmMvc2Nzcy9wYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vbG9rYWxoZWxkZW4uY2gvLi9wcm9qZWN0cy9kZWZhdWx0L3NyYy9zY3NzL3V0aWxpdGllcy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vbG9rYWxoZWxkZW4uY2gvLi88bm8gc291cmNlPiJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwic2FzczptYXRoXCI7XG5AdXNlIFwic2FzczptZXRhXCI7XG5AdXNlIFwic2FzczptYXBcIjtcbkBpbXBvcnQgXCIuL3NldHVwL19nbG9iYWwudmFyaWFibGVzLnNjc3NcIjtcbkBpbXBvcnQgXCIuL3NldHVwL19yZHMubWFwcy5zY3NzXCI7XG5AaW1wb3J0IFwiLi91dGlsaXRpZXMvX2Z1bmN0aW9ucy5zY3NzXCI7XG5AaW1wb3J0IFwiLi91dGlsaXRpZXMvX21peGlucy5zY3NzXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL21peGlucy9icmVha3BvaW50c1wiO1xuOnJvb3Qge1xuICAgIC0tcGFnZS10ZWFzZXItYmc6IHZhcigtLWMtMjE4MCk7XG4gICAgLS1wYWdlLXRlYXNlci1jb250ZW50LWNvbG9yOiB2YXIoLS1jLTIxMTApO1xuICAgIC0tcGFnZS10ZWFzZXItbWluLWhlaWdodDogMTVyZW07XG4gICAgLS1wYWdlLXByZW1pdW0tdGhlbWUtY29sb3I6IHZhcigtLWMtMjAxMCk7XG4gICAgLS1wYWdlLXByZW1pdW0tdGhlbWUtYmc6IHZhcigtLWMtMjExMCk7XG4gICAgLS1wYWdlLXByZW1pdW0tY29sb3ItbGluZS1oZWlnaHQ6IDFyZW07XG59XG4ucGFnZS1wcmVtaXVtLWNvbG9yLWxpbmUge1xuICAgIGhlaWdodDogdmFyKC0tcGFnZS1wcmVtaXVtLWNvbG9yLWxpbmUtaGVpZ2h0KTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkYXRhLWJnPVwicGFnZS10aGVtZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFnZS1wcmVtaXVtLXRoZW1lLWJnKTtcbn1cblxuLnBhZ2UtdGVhc2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYWdlLXRlYXNlci1iZyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYWdlLXRlYXNlci1taW4taGVpZ2h0KTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgIC0tcGFnZS10ZWFzZXItbWluLWhlaWdodDogMzdyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ucGFnZS10ZWFzZXJfX2hlYWQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG4ucGFnZS10ZWFzZXJfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktaW1hZ2VzKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbn1cblxuLnBhZ2UtdGVhc2VyLWluZm8ge1xuICAgIC0tdGVhc2VyLWluZm8tcGFkZGluZzogMCAwIHZhcigtLWQ3MCkgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogdmFyKC0tdGVhc2VyLWluZm8tcGFkZGluZyk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLTIwMTApO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgXCJiYWRnZVwiXG4gICAgICAgIFwidGl0bGVcIlxuICAgICAgICBcImJ1dHRvbnNcIjtcbiAgICAucGFnZS10ZWFzZXItaW5mb19fdGl0bGUge1xuICAgICAgICBncmlkLWFyZWE6IHRpdGxlO1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tZDYwKTtcbiAgICB9XG4gICAgLnBhZ2UtdGVhc2VyLWluZm9fX2JhZGdlIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBiYWRnZTtcbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICBtYXJnaW46IGNhbGMoLTEgKiB2YXIoLS1kNDApKSAwIDAgY2FsYygtMSAqIHZhcigtLXJkcy1ncmlkLXBhZGRpbmcpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tZDcwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXJ0aWNsZS1jb2Z1bmRpbmctYmFkZ2VfX3NtYWxsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtMjAxMCk7XG4gICAgICAgICYuYWxlcnRfX2J1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWxpbmsoKTtcbiAgICAgICAgfVxuICAgICAgICAmLmFsZXJ0X19idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1saW5rLWNvbG9yKGN1cnJlbnRDb2xvciwgY3VycmVudENvbG9yLCBjdXJyZW50Q29sb3IsIGN1cnJlbnRDb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMCwgMWZyKSBhdXRvIGF1dG87XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICAgICBcImJhZGdlXCJcbiAgICAgICAgICAgIFwidGl0bGVcIlxuICAgICAgICAgICAgXCJidXR0b25zXCI7XG5cbiAgICAgICAgLnBhZ2UtdGVhc2VyLWluZm9fX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy0yMDEwKTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2UtdGVhc2VyLWluZm9fX2J1dHRvbnMge1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBQYWdlIFRlYXNlciBCdXR0b25zXG4kcGFnZS1idXR0b24tc3RhdGVzOiAoXG4gICAgLypcImJ0bi0tcGFnZS10aGVtZVwiOiAoXG4gICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtYmcpLFxuICAgICAgICBcImNvbG9yXCI6IHZhcigtLXBhZ2UtcHJlbWl1bS10aGVtZS1jb2xvciksXG4gICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6IHZhcigtLXBhZ2UtcHJlbWl1bS10aGVtZS1iZyksXG4gICAgICAgIFwiYm94LXNoYWRvd1wiOiBub25lLFxuICAgICAgICBcImFjdGl2ZVwiOiAoXG4gICAgICAgICAgICBcIm91dGxpbmVcIjogbm9uZSxcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtYmcpLFxuICAgICAgICAgICAgXCJjb2xvclwiOiB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtY29sb3IpLFxuICAgICAgICAgICAgXCJib3JkZXItY29sb3JcIjogdmFyKC0tcGFnZS1wcmVtaXVtLXRoZW1lLWJnKSxcbiAgICAgICAgICAgIFwiYm94LXNoYWRvd1wiOiBub25lLFxuICAgICAgICApLFxuICAgICAgICBcImZvY3VzXCI6IChcbiAgICAgICAgICAgIFwib3V0bGluZVwiOiAwLjRyZW0gc29saWQgdmFyKC0tcGFnZS1wcmVtaXVtLXRoZW1lLWJnKSxcbiAgICAgICAgICAgIFwib3V0bGluZS1vZmZzZXRcIjogMC40cmVtLFxuICAgICAgICApLFxuICAgICAgICBcImhvdmVyXCI6IChcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtYmcpLFxuICAgICAgICAgICAgXCJjb2xvclwiOiB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtY29sb3IpLFxuICAgICAgICAgICAgXCJib3JkZXItY29sb3JcIjogdmFyKC0tcGFnZS1wcmVtaXVtLXRoZW1lLWJnKSxcbiAgICAgICAgICAgIFwib3V0bGluZVwiOiBub25lLFxuICAgICAgICAgICAgXCJib3gtc2hhZG93XCI6IDAgMCAwIDAuMnJlbSB2YXIoLS1wYWdlLXByZW1pdW0tdGhlbWUtY29sb3IpIGluc2V0LFxuICAgICAgICApLFxuICAgICAgICBcImRpc2FibGVkXCI6IChcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiB2YXIoLS1jLTIxMTApLFxuICAgICAgICAgICAgXCJjb2xvclwiOiB2YXIoLS1jLTIxNTApLFxuICAgICAgICAgICAgXCJib3JkZXItY29sb3JcIjogdmFyKC0tYy0yMTUwKSxcbiAgICAgICAgICAgIFwib3V0bGluZVwiOiBub25lLFxuICAgICAgICAgICAgXCJib3gtc2hhZG93XCI6IG5vbmUsXG4gICAgICAgICksXG4gICAgKSwqL1xuICAgICAgICBcImJ0bi0tMjAxMFwiOlxuICAgICAgICAoXG4gICAgICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogdmFyKC0tYy0yMDEwKSxcbiAgICAgICAgICAgIFwiY29sb3JcIjogdmFyKC0tYy0yMDEwKSxcbiAgICAgICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6IHZhcigtLWMtMjAxMCksXG4gICAgICAgICAgICBcImJveC1zaGFkb3dcIjogbm9uZSxcbiAgICAgICAgICAgIFwiYWN0aXZlXCI6IChcbiAgICAgICAgICAgICAgICBcIm91dGxpbmVcIjogbm9uZSxcbiAgICAgICAgICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgICAgICAgXCJjb2xvclwiOiB2YXIoLS1jLTIwMTApLFxuICAgICAgICAgICAgICAgIFwiYm9yZGVyLWNvbG9yXCI6IHZhcigtLWMtMjAxMCksXG4gICAgICAgICAgICAgICAgXCJib3gtc2hhZG93XCI6IG5vbmUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgXCJmb2N1c1wiOiAoXG4gICAgICAgICAgICAgICAgXCJvdXRsaW5lXCI6IDAuNHJlbSBzb2xpZCB2YXIoLS1jLTIwMTApLFxuICAgICAgICAgICAgICAgIFwib3V0bGluZS1vZmZzZXRcIjogMC40cmVtLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFwiaG92ZXJcIjogKFxuICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZC1jb2xvclwiOiB2YXIoLS1jLTIwMTApLFxuICAgICAgICAgICAgICAgIFwiY29sb3JcIjogdmFyKC0tYy0yMTEwKSxcbiAgICAgICAgICAgICAgICBcImJvcmRlci1jb2xvclwiOiB2YXIoLS1jLTIxMTApLFxuICAgICAgICAgICAgICAgIFwib3V0bGluZVwiOiBub25lLFxuICAgICAgICAgICAgICAgIFwiYm94LXNoYWRvd1wiOiAwIDAgMCAwLjJyZW0gdmFyKC0tYy0yMTEwKSBpbnNldCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBcImRpc2FibGVkXCI6IChcbiAgICAgICAgICAgICAgICBcImJhY2tncm91bmQtY29sb3JcIjogdmFyKC0tYy0yMTEwKSxcbiAgICAgICAgICAgICAgICBcImNvbG9yXCI6IHZhcigtLWMtMjE1MCksXG4gICAgICAgICAgICAgICAgXCJib3JkZXItY29sb3JcIjogdmFyKC0tYy0yMTUwKSxcbiAgICAgICAgICAgICAgICBcIm91dGxpbmVcIjogbm9uZSxcbiAgICAgICAgICAgICAgICBcImJveC1zaGFkb3dcIjogbm9uZSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbik7XG5cbi8vIEdlbmVyYXRlIEJ1dHRvbiBzdHlsZXMgYnkgc3RhdGUgdXNpbmcgdGhlICRyZHMtYnV0dG9uLXN0YXRlcyBtYXAgZnJvbSBzZXR1cC9fcmRzLm1hcHMuc2Nzc1xuQGVhY2ggJGJ0bl9zdGF0ZSwgJG1hcCBpbiAkcGFnZS1idXR0b24tc3RhdGVzIHtcbiAgICAuI3skYnRuX3N0YXRlfSB7XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAgICAgICBAaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gXCJsaXN0XCIgb3IgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gXCJtYXBcIiB7XG4gICAgICAgICAgICAgICAgJjojeyRwcm9wfSxcbiAgICAgICAgICAgICAgICAmLmlzLSN7JHByb3B9IHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgLS1teXR5LWJ0bi0jeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgLS1teXR5LWJ0bi0jeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgLnBhZ2UtdGVhc2VyLWluZm9fX2J1dHRvbnMge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy0yMDEwKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZ2FwOiB2YXIoLS1kODApO1xuICAgIH1cblxuICAgIC5wYWdlLXRlYXNlci1pbmZvX19idXR0b25zIC5idG4tLWxpbmsge1xuICAgICAgICAtLW15dHktYnRuLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LWxpbmstY29sb3IoY3VycmVudENvbG9yLCBjdXJyZW50Q29sb3IsIGN1cnJlbnRDb2xvciwgY3VycmVudENvbG9yKTtcblxuICAgIH1cblxufVxuXG4uYXBwbGljYXRpb24taGVybyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogdmFyKC0tZDgwKTtcbn1cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJzYXNzOm1ldGFcIjtcbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6c3RyaW5nXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNaXhpbiB0byBnZW5lcmF0ZSBjdXN0b20gcHJvcGVydGllcyBiYXNlZCBvblxuLy8gJHJkcy1zdHlsZXMtbWFwXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gZ2VuZXJhdGVUZXN0Q3VzdG9tUHJvcGVydGllcygkcHJvcGVydGllcykge1xuICAgIEBlYWNoICRwcm9wZXJ0eSwgJG1hcCBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICRwcmVmaXg6IG1hcC5nZXQoJG1hcCwgXCJwcmVmaXhcIik7XG4gICAgICAgICRzdGF0aWNfcHJlZml4OiBtYXAuZ2V0KCRtYXAsIFwic3RhdGljX3ByZWZpeFwiKTtcbiAgICAgICAgJHVuaXQ6IFwiXCI7XG4gICAgICAgIEBpZiBub3QgJHByZWZpeCB7XG4gICAgICAgICAgICAkcHJlZml4OiBcImRcIjtcbiAgICAgICAgfVxuICAgICAgICBAaWYgbm90ICRzdGF0aWNfcHJlZml4IHtcbiAgICAgICAgICAgICRzdGF0aWNfcHJlZml4OiBcInNcIjtcbiAgICAgICAgfVxuICAgICAgICBAaWYgbWFwLmdldCgkbWFwLCBcInVuaXRcIikgYW5kIG1ldGEudHlwZS1vZihtYXAuZ2V0KCRtYXAsIFwidW5pdFwiKSkgYW5kIHN0cmluZy5sZW5ndGgobWFwLmdldCgkbWFwLCBcInVuaXRcIikpID4gMCB7XG4gICAgICAgICAgICAkdW5pdDogbWFwLmdldCgkbWFwLCBcInVuaXRcIik7XG4gICAgICAgIH1cblxuICAgICAgICAkcmVzcG9uc2l2ZTogbWFwLmdldCgkbWFwLCBcInJlc3BvbnNpdmVcIik7XG4gICAgICAgICR2YWx1ZXM6IG1hcC5nZXQoJG1hcCwgXCJ2YWx1ZXNcIik7XG5cbiAgICAgICAgQGlmICgkcmVzcG9uc2l2ZSBhbmQgbWV0YS50eXBlLW9mKCRyZXNwb25zaXZlKSA9PSBsaXN0KSB7XG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbCBpbiAkcmVzcG9uc2l2ZSB7XG4gICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ICE9IFwieHNcIiBhbmQgJGJyZWFrcG9pbnQgIT0gXCJzdGF0aWNcIiB7XG4gICAgICAgICAgICAgICAgICAgICRicmVha3BvaW50X3ZhbDogbWFwLmdldCgkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnRfdmFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50X3ZhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGVhY2ggJG5hbWUsICRsaXN0IGluICR2YWx1ZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IG1hcC5nZXQoJGxpc3QsICRicmVha3BvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHZhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdW5pdCBhbmQgc3RyaW5nLmxlbmd0aCgkdW5pdCkgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IHN0cmlwLXVuaXQoJHZhbCwgJHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JG5hbWV9OiAjeyR2YWx9I3skdW5pdH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIgb3IgJGJyZWFrcG9pbnQgPT0gXCJzdGF0aWNcIiB7XG4gICAgICAgICAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDpyb290IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkbmFtZSwgJGxpc3QgaW4gJHZhbHVlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IG1hcC5nZXQoJGxpc3QsICRicmVha3BvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICR2YWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICR1bml0IGFuZCBzdHJpbmcubGVuZ3RoKCR1bml0KSA+IDAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IHN0cmlwLXVuaXQoJHZhbCwgJHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09IFwic3RhdGljXCIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tI3skc3RhdGljX3ByZWZpeH0jeyRuYW1lfTogI3skdmFsfSN7JHVuaXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0jeyRwcmVmaXh9I3skbmFtZX06ICN7JHZhbH0jeyR1bml0fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGdlbmVyYXRlQ3VzdG9tUHJvcGVydGllcygkcHJvcGVydGllcykge1xuICAgIEBlYWNoICRwcm9wZXJ0eSwgJG1hcCBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICRwcmVmaXg6IG1hcC5nZXQoJG1hcCwgXCJwcmVmaXhcIik7XG4gICAgICAgICRzdGF0aWNfcHJlZml4OiBtYXAuZ2V0KCRtYXAsIFwic3RhdGljX3ByZWZpeFwiKTtcbiAgICAgICAgJHVuaXQ6IFwiXCI7XG4gICAgICAgIEBpZiBub3QgJHByZWZpeCB7XG4gICAgICAgICAgICAkcHJlZml4OiBcImRcIjtcbiAgICAgICAgfVxuICAgICAgICBAaWYgbm90ICRzdGF0aWNfcHJlZml4IHtcbiAgICAgICAgICAgICRzdGF0aWNfcHJlZml4OiBcInNcIjtcbiAgICAgICAgfVxuICAgICAgICBAaWYgbWFwLmdldCgkbWFwLCBcInVuaXRcIikgYW5kIG1ldGEudHlwZS1vZihtYXAuZ2V0KCRtYXAsIFwidW5pdFwiKSkgYW5kIHN0cmluZy5sZW5ndGgobWFwLmdldCgkbWFwLCBcInVuaXRcIikpID4gMCB7XG4gICAgICAgICAgICAkdW5pdDogbWFwLmdldCgkbWFwLCBcInVuaXRcIik7XG4gICAgICAgIH1cblxuICAgICAgICAkcmVzcG9uc2l2ZTogbWFwLmdldCgkbWFwLCBcInJlc3BvbnNpdmVcIik7XG4gICAgICAgICR2YWx1ZXM6IG1hcC5nZXQoJG1hcCwgXCJ2YWx1ZXNcIik7XG5cbiAgICAgICAgQGlmICgkcmVzcG9uc2l2ZSBhbmQgbWV0YS50eXBlLW9mKCRyZXNwb25zaXZlKSA9PSBsaXN0KSB7XG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbCBpbiAkcmVzcG9uc2l2ZSB7XG4gICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09IFwieHNcIiBvciAkYnJlYWtwb2ludCA9PSBcInN0YXRpY1wiIHtcbiAgICAgICAgICAgICAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRuYW1lLCAkbGlzdCBpbiAkdmFsdWVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbDogbWFwLmdldCgkbGlzdCwgJGJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHZhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHVuaXQgYW5kIHN0cmluZy5sZW5ndGgoJHVuaXQpID4gMCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbDogc3RyaXAtdW5pdCgkdmFsLCAkdW5pdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gXCJzdGF0aWNcIiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0jeyRzdGF0aWNfcHJlZml4fSN7JG5hbWV9OiAjeyR2YWx9I3skdW5pdH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSN7JHByZWZpeH0jeyRuYW1lfTogI3skdmFsfSN7JHVuaXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICRicmVha3BvaW50X3ZhbDogbWFwLmdldCgkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnRfdmFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50X3ZhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGVhY2ggJG5hbWUsICRsaXN0IGluICR2YWx1ZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IG1hcC5nZXQoJGxpc3QsICRicmVha3BvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHZhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdW5pdCBhbmQgc3RyaW5nLmxlbmd0aCgkdW5pdCkgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWw6IHN0cmlwLXVuaXQoJHZhbCwgJHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JG5hbWV9OiAjeyR2YWx9I3skdW5pdH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIGlmICgkdmFsdWVzIGFuZCBtZXRhLnR5cGUtb2YoJHZhbHVlcykgPT0gbWFwKSB7XG4gICAgICAgICAgICBAYXQtcm9vdCB7XG4gICAgICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbCBpbiAkdmFsdWVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdW5pdCBhbmQgc3RyaW5nLmxlbmd0aCgkdW5pdCkgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsOiBzdHJpcC11bml0KCR2YWwsICR1bml0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JG5hbWV9OiAjeyR2YWx9I3skdW5pdH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNaXhpbiB0byBnZW5lcmF0ZSB0eXBvZ3JhcGhpY2FsIGN1c3RvbSBwcm9wZXJ0aWVzIGJhc2VkIG9uXG4vLyAkcmRzLXR5cG9ncmFwaGllLW1hcFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBnZW5lcmF0ZUZvbnRQcm9wZXJ0aWVzKCRzZXR1cCwgJHR5cGVzOiBudWxsLCAkZm9udFNpemVVbml0OiByZW0pIHtcbiAgICAkbWFwX3hzOiAoKTtcbiAgICAkbWFwX21kOiAoKTtcbiAgICAkbWFwX3hsOiAoKTtcbiAgICAkbWFwX3N0YXRpYzogKCk7XG4gICAgJGZhbWlseTogbWFwLmdldCgkc2V0dXAsIFwiZmFtaWx5XCIpO1xuICAgICRwcm9wZXJ0aWVzOiBtYXAuZ2V0KCRzZXR1cCwgXCJzZXRzXCIpO1xuICAgIEBlYWNoICRzZXQsICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkdHlwZXMpICE9IG1hcCBvciAobWV0YS50eXBlLW9mKCR0eXBlcykgPT0gbWFwIGFuZCBtYXAuZ2V0KCR0eXBlcywgJHNldCkgIT0gbnVsbCkge1xuICAgICAgICAgICAgQGlmICRsaXN0IGFuZCBtZXRhLnR5cGUtb2YoJGxpc3QpID09IG1hcCB7XG4gICAgICAgICAgICAgICAgJHdlaWdodDogbWFwLmdldCgkbGlzdCwgXCJ3ZWlnaHRcIik7XG4gICAgICAgICAgICAgICAgJHZhbHVlczogbWFwLmdldCgkbGlzdCwgXCJ2YWx1ZXNcIik7XG4gICAgICAgICAgICAgICAgQGlmICgkdmFsdWVzIGFuZCBtZXRhLnR5cGUtb2YoJHZhbHVlcykgPT0gbWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkc2V0dGluZ3MgaW4gJHZhbHVlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZnM6IG1hcC5nZXQoJHNldHRpbmdzLCBcImZzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxoOiBtYXRoLmRpdihtYXAuZ2V0KCRzZXR0aW5ncywgXCJsaFwiKSwgJGZzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkZm9udFNpemVVbml0ID09IHB4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnM6ICN7c3RyaXAtdW5pdCgkZnMsIHB4KX1weDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmczogI3tzdHJpcC11bml0KCRmcywgcmVtKX1yZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbHM6IG1hcC5nZXQoJHNldHRpbmdzLCBcImxzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHdyYXA6IG1hcC5nZXQoJHNldHRpbmdzLCBcIndyYXBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbWFwX2tleTogdC0jeyRzZXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF92YWw6ICN7JHdlaWdodH0gI3skZnN9IC8gI3skbGh9ICN7KG1ldGEuaW5zcGVjdCgkZmFtaWx5KSl9O1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09IFwieHNcIiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF94czogbWFwLnNldCgkbWFwX3hzLCAkbWFwX2tleSwgJG1hcF92YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX2tleTogbHMtI3skc2V0fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF94czogbWFwLnNldCgkbWFwX3hzLCAkbWFwX2tleSwgJGxzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICR3cmFwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF9rZXk6IHdyYXAtI3skc2V0fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF94czogbWFwLnNldCgkbWFwX3hzLCAkbWFwX2tleSwgJHdyYXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJtZFwiIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX21kOiBtYXAuc2V0KCRtYXBfbWQsICRtYXBfa2V5LCAkbWFwX3ZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfa2V5OiBscy0jeyRzZXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX21kOiBtYXAuc2V0KCRtYXBfbWQsICRtYXBfa2V5LCAkbHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHdyYXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX2tleTogd3JhcC0jeyRzZXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX21kOiBtYXAuc2V0KCRtYXBfbWQsICRtYXBfa2V5LCAkd3JhcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInhsXCIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfeGw6IG1hcC5zZXQoJG1hcF94bCwgJG1hcF9rZXksICRtYXBfdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGxzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF9rZXk6IGxzLSN7JHNldH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfeGw6IG1hcC5zZXQoJG1hcF94bCwgJG1hcF9rZXksICRscyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkd3JhcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfa2V5OiB3cmFwLSN7JHNldH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfeGw6IG1hcC5zZXQoJG1hcF94bCwgJG1hcF9rZXksICR3cmFwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwic3RhdGljXCIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXBfc3RhdGljOiBtYXAuc2V0KCRtYXBfc3RhdGljLCAkbWFwX2tleSwgJG1hcF92YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX2tleTogbHMtI3skc2V0fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hcF9zdGF0aWM6IG1hcC5zZXQoJG1hcF9zdGF0aWMsICRtYXBfa2V5LCAkbHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHdyYXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX2tleTogd3JhcC0jeyRzZXR9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFwX3N0YXRpYzogbWFwLnNldCgkbWFwX3N0YXRpYywgJG1hcF9rZXksICR3cmFwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbWFwX3N0YXRpYyB7XG4gICAgICAgIC0tI3skbmFtZX0tc3RhdGljOiAjeyR2YWx1ZX07XG4gICAgfVxuICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1hcF94cyB7XG4gICAgICAgIC0tI3skbmFtZX06ICN7JHZhbHVlfTtcbiAgICB9XG4gICAgJGJyZWFrcG9pbnRfdmFsOiBtYXAuZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBtZCk7XG4gICAgQGlmICRicmVha3BvaW50X3ZhbCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50X3ZhbCkge1xuICAgICAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbWFwX21kIHtcbiAgICAgICAgICAgICAgICAtLSN7JG5hbWV9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJGJyZWFrcG9pbnRfdmFsOiBtYXAuZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCB4bCk7XG4gICAgQGlmICRicmVha3BvaW50X3ZhbCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50X3ZhbCkge1xuICAgICAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbWFwX3hsIHtcbiAgICAgICAgICAgICAgICAtLSN7JG5hbWV9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBnZW5lcmF0ZUZvbnRFeHRlbmRzQW5kQmFzZUNsYXNzZXMoJHNldHVwOiAkcmRzLXR5cG9ncmFwaGllLW1hcCwgJGNsYXNzLXByZWZpeDogXCJmb250XCIpIHtcbiAgICAkcHJvcGVydGllczogbWFwLmdldCgkc2V0dXAsIFwic2V0c1wiKTtcbiAgICBAZWFjaCAkc2V0LCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICRoYXNTdGF0aWM6IG1hcC5nZXQobWFwLmdldCgkbGlzdCwgXCJ2YWx1ZXNcIiksIFwic3RhdGljXCIpOyAvL21hcC5nZXQobWFwLmdldCgkbGlzdCwgXCJ2YWx1ZXNcIiksIFwic3RhdGl0Y1wiKTtcbiAgICAgICAgQGlmICRoYXNTdGF0aWMge1xuICAgICAgICAgICAgJWZvbnQjeyRzZXR9U3RhdGljIHtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS10LSN7JHNldH0tc3RhdGljKTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbHMtI3skc2V0fS1zdGF0aWMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICVmb250I3skc2V0fSB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS10LSN7JHNldH0pO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLSN7JHNldH0pO1xuICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogdmFyKC0td3JhcC0jeyRzZXR9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAZWFjaCAkc2V0LCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICRoYXNTdGF0aWM6IG1hcC5nZXQobWFwLmdldCgkbGlzdCwgXCJ2YWx1ZXNcIiksIFwic3RhdGljXCIpO1xuICAgICAgICBAaWYgJGhhc1N0YXRpYyB7XG4gICAgICAgICAgICAuI3skY2xhc3MtcHJlZml4fS0jeyRzZXR9LXN0YXRpYyB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlZm9udCN7JHNldH1TdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGNsYXNzLXByZWZpeH0tI3skc2V0fSB7XG4gICAgICAgICAgICBAZXh0ZW5kICVmb250I3skc2V0fTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1peGluIHRvIGdlbmVyYXRlIGFzcGVjdCByYXRpbyB2YXJpYWJsZXNcbi8vICRyZHNfb2JqX3JhdGlvc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBnZW5lcmF0ZUFzcGVjdFJhdGlvUHJvcGVydGllcygkc2V0dXA6ICRyZHMtb2JqLXJhdGlvcykge1xuICAgIEBhdC1yb290IHtcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgQGVhY2ggJHJhdGlvIGluICRzZXR1cCB7XG4gICAgICAgICAgICAgICAgJHYxOiBsaXN0Lm50aCgkcmF0aW8sIDEpO1xuICAgICAgICAgICAgICAgICR2MjogbGlzdC5udGgoJHJhdGlvLCAyKTtcbiAgICAgICAgICAgICAgICAtLXJhdGlvLSN7JHYxfWJ5I3skdjJ9OiAjeyR2MX0gLyAjeyR2Mn07XG4gICAgICAgICAgICAgICAgQGlmICR2MSAhPSAkdjIge1xuICAgICAgICAgICAgICAgICAgICAtLXJhdGlvLSN7JHYyfWJ5I3skdjF9OiAjeyR2Mn0gLyAjeyR2MX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTWl4aW4gdG8gZ2VuZXJhdGUgYnV0dG9uIHN0YXRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBnZW5lcmF0ZUJ1dHRvblN0YXRlcygkbWFwX3NldHVwOiAkcmRzLWJ1dHRvbi1zdGF0ZXMsICRwbGFjZWhvbGRlci1wb3N0Zml4OiBmYWxzZSkge1xuICAgIEBpZiBtZXRhLnR5cGUtb2YoJG1hcF9zZXR1cCkgPT0gXCJsaXN0XCIgb3IgbWV0YS50eXBlLW9mKCRtYXBfc2V0dXApID09IFwibWFwXCIge1xuICAgICAgICBAZWFjaCAkYnRuX3N0YXRlLCAkbWFwIGluICRtYXBfc2V0dXAge1xuICAgICAgICAgICAgJHN0YXRlTmFtZTogI3skYnRuX3N0YXRlfTtcbiAgICAgICAgICAgIEBpZiAkcGxhY2Vob2xkZXItcG9zdGZpeCAhPSBmYWxzZSBhbmQgbWV0YS50eXBlLW9mKCRwbGFjZWhvbGRlci1wb3N0Zml4KSA9PSBcInN0cmluZ1wiIHtcbiAgICAgICAgICAgICAgICAkc3RhdGVOYW1lOiAjeyRidG5fc3RhdGV9LSN7JHBsYWNlaG9sZGVyLXBvc3RmaXh9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlI3skc3RhdGVOYW1lfSB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09IFwibGlzdFwiIG9yIG1ldGEudHlwZS1vZigkdmFsdWUpID09IFwibWFwXCIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjojeyRwcm9wfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICYuaXMtI3skcHJvcH0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1teXR5LWJ0bi0jeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAtLW15dHktYnRuLSN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnRuX3N0YXRlLCAkbWFwIGluICRtYXBfc2V0dXAge1xuICAgICAgICAgICAgJHN0YXRlTmFtZTogI3skYnRuX3N0YXRlfTtcbiAgICAgICAgICAgIEBpZiAkcGxhY2Vob2xkZXItcG9zdGZpeCAhPSBmYWxzZSBhbmQgbWV0YS50eXBlLW9mKCRwbGFjZWhvbGRlci1wb3N0Zml4KSA9PSBcInN0cmluZ1wiIHtcbiAgICAgICAgICAgICAgICAkc3RhdGVOYW1lOiAjeyRidG5fc3RhdGV9LSN7JHBsYWNlaG9sZGVyLXBvc3RmaXh9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JGJ0bl9zdGF0ZX0ge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgJSN7JHN0YXRlTmFtZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNaXNjIG1peGluc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW5yZWFkZXJzOiBoNWJwLmNvbS9cbkBtaXhpbiB2aXN1YWxseWhpZGRlbigpIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuLy8gRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOiBoNWJwLmNvbS9wXG5AbWl4aW4gdmlzdWFsbHkoKSB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8vIEdlbmVyYXRlIHRleHQgbGluayBjb2xvci9kZWNvcmF0aW9uIGNvbWJpbmF0aW9ucyBiYXNlZCBvbiBSRFMgdGV4dCBsaW5rIGRlZmluaXRpb25zOlxuLy8gaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvYmF0aWFmMmJ6SGtBWXhHeTZjbW92VS9SRFMtTGlicmFyeT90eXBlPWRlc2lnbiZub2RlLWlkPTExMTAwLTIwNzUzOSZ0PXpkMG4wSDg3eHZGQnlMdlUtMFxuQG1peGluIHRleHQtbGluaygkaG92ZXItZGVjb3JhdGlvbjogZmFsc2UpIHtcbiAgICAtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7XG4gICAgLS1teXR5LXRleHQtbGluay11bmRlcmxpbmUtb2Zmc2V0OiAje2NhbGN1bGF0ZVVuZGVybGluZU9mZnNldChcInhzXCIsIFwiQnV0dG9uXCIpfXB4O1xuICAgIEBpZiAkaG92ZXItZGVjb3JhdGlvbiA9PSB0cnVlIHtcbiAgICAgICAgLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uOiBub25lO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IHZhcigtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb24tdGhpY2tuZXNzKTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IHZhcigtLW15dHktdGV4dC1saW5rLXVuZGVybGluZS1vZmZzZXQpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbiAzMDBtcyxcbiAgICAgICAgY29sb3IgMzAwbXM7XG4gICAgJi5pcy1hY3RpdmUsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBAaWYgJGhvdmVyLWRlY29yYXRpb24gPT0gdHJ1ZSB7XG4gICAgICAgICAgICAtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgICAtLW15dHktdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICAgIH1cbiAgICAmLmhhcy1mb2N1cyxcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBAaWYgJGhvdmVyLWRlY29yYXRpb24gPT0gdHJ1ZSB7XG4gICAgICAgICAgICAtLW15dHktdGV4dC1saW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgICAtLW15dHktYnRuLW91dGxpbmU6IG5vbmU7XG4gICAgICAgIC0tbXl0eS10ZXh0LWxpbmstZGVjb3JhdGlvbi10aGlja25lc3M6IDRweDtcbiAgICB9XG4gICAgJi5pcy1kaXNhYmxlZCxcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICAgIH1cbiAgICBAaWYgY2FsY3VsYXRlVW5kZXJsaW5lT2Zmc2V0KFwibWRcIiwgXCJCdXR0b25cIikgYW5kIGNhbGN1bGF0ZVVuZGVybGluZU9mZnNldChcIm1kXCIsIFwiQnV0dG9uXCIpID49IDAge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgICAgICAtLW15dHktdGV4dC1saW5rLXVuZGVybGluZS1vZmZzZXQ6ICN7Y2FsY3VsYXRlVW5kZXJsaW5lT2Zmc2V0KFwibWRcIiwgXCJCdXR0b25cIil9cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIGNhbGN1bGF0ZVVuZGVybGluZU9mZnNldChcInhsXCIpIGFuZCBjYWxjdWxhdGVVbmRlcmxpbmVPZmZzZXQoXCJ4bFwiLCBcIkJ1dHRvblwiKSA+PSAwIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuICAgICAgICAgICAgLS1teXR5LXRleHQtbGluay11bmRlcmxpbmUtb2Zmc2V0OiAje2NhbGN1bGF0ZVVuZGVybGluZU9mZnNldChcInhsXCIsIFwiQnV0dG9uXCIpfXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuQG1peGluIHRleHQtbGluay1jb2xvcigkY29sb3I6IHZhcigtLWMtNDAxMCksICRhY3RpdmU6IHZhcigtLWMtMjExMCksICRmb2N1czogdmFyKC0tYy0yMTEwKSwgJGRpc2FibGVkOiB2YXIoLS1jLTIxNTApKSB7XG4gICAgLS1teXR5LXRleHQtbGluay1jb2xvcjogI3skY29sb3J9O1xuICAgIC0tbXl0eS10ZXh0LWxpbmstZGVjb3JhdGlvbi1jb2xvcjogI3skY29sb3J9O1xuICAgIGNvbG9yOiB2YXIoLS1teXR5LXRleHQtbGluay1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uLWNvbG9yKTtcbiAgICAmLmlzLWFjdGl2ZSxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIC0tbXl0eS10ZXh0LWxpbmstY29sb3I6ICN7JGFjdGl2ZX07XG4gICAgICAgIC0tbXl0eS10ZXh0LWRlY29yYXRpb24tY29sb3I6ICN7JGFjdGl2ZX07XG4gICAgfVxuICAgICYuaGFzLWhvdmVyLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIC0tbXl0eS10ZXh0LWxpbmstY29sb3I6ICN7JGZvY3VzfTtcbiAgICAgICAgLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uLWNvbG9yOiAjeyRmb2N1c307XG4gICAgfVxuICAgICYuaXMtZGlzYWJsZWQsXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIC0tbXl0eS10ZXh0LWxpbmstY29sb3I6ICN7JGRpc2FibGVkfTtcbiAgICAgICAgLS1teXR5LXRleHQtbGluay1kZWNvcmF0aW9uLWNvbG9yOiAjeyRkaXNhYmxlZH07XG4gICAgfVxuICAgIC5pY29uIHtcbiAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cbn1cblxuQG1peGluIHNldEZvbnQoJGZvbnQ6IFwiU3RhbmRhcmRcIiwgJG1hcDogJHJkcy10eXBvZ3JhcGhpZS1tYXApIHtcbiAgICAkZjogbWFwLmdldChtYXAuZ2V0KCRtYXAsIFwic2V0c1wiKSwgJGZvbnQpO1xuICAgIEBpZiAkZiBhbmQgKG1ldGEudHlwZS1vZigkZikgPT0gbWFwIG9yIG1ldGEudHlwZS1vZigkZikgPT0gbGlzdCkge1xuICAgICAgICBmb250OiB2YXIoLS10LSN7JGZvbnR9KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLSN7JGZvbnR9KTtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogdmFyKC0td3JhcC0jeyRmb250fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLXQtU3RhbmRhcmQpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbHMtU3RhbmRhcmQpO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiB2YXIoLS13cmFwLVN0YW5kYXJkKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNaXhpbiB0byBnZW5lcmF0ZSBzY2VsZXRvbiB2YXJpYW50c1xuLy8gJHJkcy1za2VsZXRvbi1tYXBcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gZ2VuZXJhdGVTa2VsZXRvblZhcmlhbnRzKCRtYXBfc2V0dXA6ICRyZHMtc2tlbGV0b24tbWFwKSB7XG4gICAgQGVhY2ggJHNldCwgJGxpc3QgaW4gJG1hcF9zZXR1cCB7XG4gICAgICAgIEBpZiBtZXRhLnR5cGUtb2YoJGxpc3QpID09IG1hcCBhbmQgbWFwLmdldCgkbGlzdCwgdmFsdWVzKSB7XG4gICAgICAgICAgICAkdjogbWFwLmdldCgkbGlzdCwgdmFsdWVzKTtcbiAgICAgICAgICAgICRiOiBtYXAuZ2V0KCRsaXN0LCBiYXNlKTtcbiAgICAgICAgICAgICRsaDogMDtcbiAgICAgICAgICAgICRmczogMDtcbiAgICAgICAgICAgIC5za2VsZXRvbl9fYmxvY2suaXMtI3skc2V0fSB7XG4gICAgICAgICAgICAgICAgLS1za2VsZXRvbi1ibG9jay1oZWlnaHQ6ICN7bGlzdC5udGgoJHYsIDEpfXJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIC0tc2tlbGV0b24tYmxvY2staGVpZ2h0OiAje2xpc3QubnRoKCR2LCAyKX1yZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgLS1za2VsZXRvbi1ibG9jay1oZWlnaHQ6ICN7bGlzdC5udGgoJHYsIDMpfXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGIge1xuICAgICAgICAgICAgICAgIC5za2VsZXRvbi1ibG9jay1wdC5pcy0jeyRzZXR9IHtcbiAgICAgICAgICAgICAgICAgICAgJGxoOiBnZXRCcmVha3BvaW50Rm9udFZhbHVlRnJvbU1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICRtYXA6ICRyZHMtdHlwb2dyYXBoaWUtbWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQ6ICRiLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGJyZWFrcG9pbnQ6IFwieHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZTogXCJsaFwiLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAkZnM6IGdldEJyZWFrcG9pbnRGb250VmFsdWVGcm9tTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgJG1hcDogJHJkcy10eXBvZ3JhcGhpZS1tYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAkZm9udDogJGIsXG4gICAgICAgICAgICAgICAgICAgICAgICAkYnJlYWtwb2ludDogXCJ4c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlOiBcImZzXCIsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIC0tc2tlbGV0b24tc3BhY2luZzogI3skbGggLSAkZnN9cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/