html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html,body{background:#ececec;color:#5b5b5b;font-family:"Open Sans", sans-serif;text-rendering:optimizeLegibility;font-size:1em;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}h1,h2,h3,h4,h5,h6,p{line-height:1.5;margin-bottom:1em;font-weight:400}h1{font-size:2.188em}h2{font-size:1.875em}h3{font-size:1.625em}h4{font-size:1.438em}h5{font-size:1.125em}p{font-size:1em}hr{border:none;background:#cdcdcd;height:1px;margin:20px 0}i,em{font-style:italic}b,strong{font-weight:600}small{font-size:80%}a{color:#3b93c3}a:hover{color:#2d7094;text-decoration:none}ul li,ol li{line-height:1.5}.unstyle{list-style:none;padding:0}img{max-width:100%}input:focus::-webkit-input-placeholder{color:transparent}input:focus::-moz-placeholder{color:transparent}.form-control{background:#fefefe;border:1px solid #cdcdcd;height:40px;padding:6px 15px;box-shadow:none;font-size:1em}label{display:block}input[type="search"]{-webkit-transition:all 0.1s ease;-moz-transition:all 0.1s ease;transition:all 0.1s ease;box-sizing:border-box;border-radius:3px;padding:10px 15px;background:none;border:1px solid rgba(91,91,91,0.1)}input[type="search"]:focus{background:#ffffff}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.form__separator{margin:15px 0;font-weight:600;line-height:1.5;text-align:center;text-transform:uppercase}.btn{display:inline-block;width:auto;border:none;border-radius:3px;box-shadow:none;outline:none;font-weight:500;text-decoration:none;-webkit-tap-highlight-color:transparent}.btn:hover,.btn:focus,.btn:active{box-shadow:none}.btn-large{padding:12px;font-size:1.125em}.btn-block{display:block;width:100%}.btn-primary{background:#3b5062;color:#fff}.btn-primary:hover,.btn-primary:focus,.btn-primary:active{background:#283642;color:#fff}.btn-secondary{background:#fafafa;color:#5b5b5b}.btn-secondary:hover,.btn-secondary:focus,.btn-secondary:active{background:#e1e1e1;color:#5b5b5b}.btn-default{background:#b2b2b2;color:#ffffff}.btn-default:hover,.btn-default:focus,.btn-default:active{background:#999}.linkedin-signin{background:#4875b4;color:#fff}.linkedin-signin:hover,.linkedin-signin:focus,.linkedin-signin:active{background:#395d90;color:#fff}#wrap{min-height:100%;margin-bottom:-166px;background:#f9f9f9}#wrap::after{clear:both;content:"";display:table}@media only screen and (min-width: 1600px){#wrap{max-width:1600px;margin-left:auto;margin-right:auto;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf}}#content-push{padding-top:30px}@media only screen and (max-width: 767px){#content-push{padding-top:25px}}@media only screen and (max-width: 479px){#content-push{padding-top:15px}}.site-landing__courses,.products-wrapper,.student-dashboard-wrapper,.checkout-form,.student-profile{max-width:1250px;margin:0 auto;padding:35px 0}.site-landing__courses{padding-top:60px}@media only screen and (max-width: 479px){.site-landing__courses,.products-wrapper,.student-dashboard-wrapper,.checkout-form,.student-profile{padding:20px 0}}.column{padding-left:75px;padding-right:75px}@media only screen and (min-width: 992px){.column{padding-left:100px;padding-right:100px}}@media only screen and (max-width: 991px){.column{padding-left:55px;padding-right:55px}}@media only screen and (max-width: 767px){.column{padding-left:25px;padding-right:25px}}@media only screen and (max-width: 479px){.column{padding-left:15px;padding-right:15px}}.visible{display:inline-block !important}.card{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff}.card::after{clear:both;content:"";display:table}.card--block{display:block}.card--padding-5{padding:5px}.card--padding-15{padding:15px}.card--padding-20{padding:20px}.card--bottom-margin-10{margin-bottom:10px}.card--bottom-margin-20{margin-bottom:20px}.course-card{height:468px;margin-bottom:30px;cursor:pointer}.course-card__img{border-top-left-radius:3px;border-top-right-radius:3px;width:100%;height:auto}.course-card__img-container{border-top-left-radius:3px;border-top-right-radius:3px;position:relative;overflow:hidden;max-height:220px}.course-card__body{padding:20px 20px 10px}.course-card__instructor-name{font-size:0.875em}.course-card__price{color:#3b93c3;font-weight:600;font-size:0.875em;text-align:right;line-height:1;word-wrap:break-word}.course-card__price .free{text-transform:uppercase}.course-card__title{color:#5b5b5b;font-size:1.125em}.course-card__title a{color:#5b5b5b}.course-card__description{margin-bottom:10px;color:#9b9b9b;font-size:0.938em}.course-card__cta{position:absolute;bottom:0;left:0;width:100%;margin-bottom:20px;padding:0 20px}.course-card__cta .btn{padding:8px}.course-card__cta a{margin-bottom:5px}.course-card__cta a:last-of-type{margin-bottom:0}.course-card__cta-secondary{margin-bottom:10px}.progress-card{cursor:default}.progress-card .course-card__body{padding-top:10px}.progress-card .course-card__title{text-align:center}.progress-card .progress-card-progress{padding-top:10px}.progress-card .progress-completion{color:#5b5b5b;font-size:1.875em;text-align:center}.progress-card .progress-line{position:relative;display:inline-block;overflow:hidden;width:100%;height:3px;margin:10px 0}.progress-card .progress-line .progress-line-percent{position:absolute;top:0;left:0;height:100%;background-color:#3b93c3}.progress-card .progress-line .progress-line-bar{height:3px;background:#cdcdcd}@media screen and (min-width: 992px){.course-card__img-container{max-height:202px}}@media screen and (min-width: 768px) and (max-width: 991px){.course-card{height:481px}.course-card__img-container{max-height:235px}.course-card__title{font-size:1.063em}}@media screen and (max-width: 767px){.course-card{max-width:370px;height:auto;margin-top:0;margin-right:auto;margin-left:auto;padding-bottom:20px}.course-card__cta{position:relative;margin-bottom:0}.course-card__body .star-rating{margin:10px 0}}header{padding-top:20px;padding-bottom:20px;background:#fafafa}header a{color:#434343}header a:hover,header a:active,header a:focus{color:#101010}.header-logo__image{width:auto;max-height:35px;max-width:initial;margin-right:20px}.header-school-name{display:inline-block;margin-right:20px;font-size:1.875em}.header-nav__list{list-style:none;padding:0;margin:0;width:100%}.header-nav__item{font-size:0.875em;cursor:pointer}.header-user-avatar{border-radius:50%;height:25px;width:25px;margin:-25px 5px -21px}.dropdown{margin-left:15px}.dropdown-toggle{margin-left:10px}.dropdown-menu{top:22px;right:0;left:auto;border-radius:0;background:#fafafa;border:0}.dropdown-menu>li{text-align:right}.dropdown-menu>li>a{color:#434343}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:active,.dropdown-menu>li>a:focus{color:#fafafa;background-color:#434343}.header-nav__mobile-btn{display:none;margin-right:0;padding:6px 10px;color:#434343;border:1px solid #434343;background:none;border-radius:3px}.header-nav__mobile-btn:hover,.header-nav__mobile-btn:active,.header-nav__mobile-btn:focus{color:#fafafa;background-color:#434343}@media only screen and (min-width: 992px){header .column{display:table;width:100%}.header-logo__container{display:table-cell;width:1px;white-space:nowrap}.header-nav__container{display:table-cell;vertical-align:middle}.header-nav{display:table;width:100%}.header-nav__list{display:table-cell}.header-nav__left,.header-nav__right{width:auto}.header-nav__right{text-align:right}.header-nav__item{display:inline-block;vertical-align:sub}.header-nav__item+.header-nav__item{margin-left:10px}}@media only screen and (max-width: 991px){.header-nav{padding-top:15px}.header-school-name{margin-right:85px}.header-nav__container{display:none}.header-nav__container.open{display:block}.header-nav__item{display:block;text-align:center;font-size:0.938em}.header-nav__link{display:block;padding:10px 0}.header-logo__container{position:relative}.header-nav__mobile-btn{position:absolute;display:block;top:50%;right:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.dropdown{display:none}}footer,#wrap:after{height:166px}footer{margin-left:auto;margin-right:auto;max-width:1600px;background:#fafafa;padding:30px 0;color:#5b5b5b}footer a{color:#5b5b5b}footer a:hover,footer a:active,footer a:focus{text-decoration:underline}.footer-nav{text-align:center;list-style:none;padding:0;margin:0 0 30px 0}.footer-nav__item{display:inline-block;font-size:0.875em}.footer-nav__item+.footer-nav__item{margin-left:15px}.footer-copyright{margin-bottom:10px;font-size:0.750em;opacity:0.6}.footer-powered-by{font-size:0.750em}@media only screen and (min-width: 1600px){footer{max-width:1600px;margin-left:auto;margin-right:auto;border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3}}.star-rating{position:relative;display:inline-block;overflow:hidden;width:90px;height:18px;background:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cG9seWdvbiBmaWxsPSIjREREREREIiBwb2ludHM9IjEwLDAgMTMuMDksNi41ODMgMjAsNy42MzkgMTUsMTIuNzY0IDE2LjE4LDIwIDEwLDE2LjU4MyAzLjgyLDIwIDUsMTIuNzY0IDAsNy42MzkgNi45MSw2LjU4MyAiLz48L3N2Zz4=");background-size:contain;font-size:0;white-space:nowrap}.star-rating i{position:absolute;top:0;left:0;z-index:1;width:20%;height:100%;opacity:0;background:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cG9seWdvbiBmaWxsPSIjRkZERjg4IiBwb2ludHM9IjEwLDAgMTMuMDksNi41ODMgMjAsNy42MzkgMTUsMTIuNzY0IDE2LjE4LDIwIDEwLDE2LjU4MyAzLjgyLDIwIDUsMTIuNzY0IDAsNy42MzkgNi45MSw2LjU4MyAiLz48L3N2Zz4=");background-size:contain}.star-rating input{position:relative;z-index:2;display:inline-block;width:20%;height:100%;margin:0;padding:0;opacity:0;-webkit-appearance:none;-moz-appearance:none}.star-rating i ~ i{width:40%}.star-rating i ~ i ~ i{width:60%}.star-rating i ~ i ~ i ~ i{width:80%}.star-rating i ~ i ~ i ~ i ~ i{width:100%}.star-rating__input input{position:relative}.star-rating__input input:hover+i,.star-rating__input input:checked+i{opacity:1}.star-rating__filled{position:relative}.star-rating__filled i{opacity:1}.star_rating__single{width:25px}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{background-color:#f3f3f3;border-color:#cdcdcd;color:#3b93c3}.pagination>li>a,.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span{color:#3b93c3;border:1px solid #cdcdcd}.site-landing__banner{position:relative;height:400px;background-size:cover;background-position:center center;background-repeat:no-repeat;color:#fff}.site-landing__banner-content{-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-o-transform:translate(-50%, -50%);transform:translate(-50%, -50%);position:absolute;top:50%;left:50%;width:100%;max-width:1250px;text-align:center}.product-cards__container::after{clear:both;content:"";display:table}@media only screen and (min-width: 992px){.product-cards__container{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center;-webkit-box-lines:multiple;-moz-box-lines:multiple;box-lines:multiple;-webkit-flex-wrap:wrap;-moz-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.product-cards__container:before,.product-cards__container:after{content:normal}}@media only screen and (max-width: 767px){.site-landing__banner{height:300px}.site-landing__banner--title{font-size:1.875em;margin-top:0}.site-landing__banner--subtitle{font-size:1.250em;margin:0}}@media only screen and (max-width: 479px){.site-landing__banner{height:250px}.site-landing__banner--title{font-size:1.625em}.site-landing__banner--subtitle{font-size:0.938em}}.product-landing{background:#ffffff;font-size:1em;line-height:1.8}.product-landing section{padding-top:60px;padding-bottom:60px}.product-landing section::after{clear:both;content:"";display:table}.product-landing section p:last-of-type{margin-bottom:0}.product-landing section p a{color:#3b93c3}.product-landing section p a:hover{text-decoration:underline}.product-landing .section-title{margin:0 0 42px;color:#3b93c3;font-weight:200;font-size:2.250em}.course-contact-info{font-weight:bold}.product-banner{position:relative;width:100%}.product-banner .title-block{width:75%;margin:auto;padding:0;font-weight:900;text-align:center}.product-banner .product__title{margin:0 0 30px;color:#fff;font-weight:300;font-size:2.438em}.product-banner .product__subtitle{display:block;color:#fff;font-weight:400;font-size:1em}.product-banner .product__private-title{color:#fff;line-height:1}.product-banner .product__private-title i{font-size:1.125em;vertical-align:middle}.btn-intro-video{border:1px solid #fff;background:none;color:#fff;font-size:1em}.btn-intro-video:hover,.btn-intro-video:focus,.btn-intro-video:active{border:1px solid #fff;background:#fff;color:#3b93c3}@media only screen and (max-width: 479px){.btn-intro-video{padding-left:12px;padding-right:12px}}.product-main-cta{text-align:center}.product-main-cta .btn{padding:15px 40px;font-weight:400;font-size:1.250em}.product-body-button-block .bundle-cta-tagline{color:#5b5b5b}.product-overview img{max-width:100%}.product-overview .readmore{position:relative}.product-overview .readmore-toggle{margin-top:26px}.course-contact-info{margin:0}.course-contact-info p{margin:10px 0}.course-review__container{margin-bottom:48px}.course-review__container:last-of-type{margin-bottom:0}.course-review__name{margin-bottom:18px}.course-review__stars{margin-bottom:12px}.course-review__title{margin-bottom:12px;font-weight:normal}.review-button{display:inline-block;margin-top:30px;cursor:pointer}.chapter-info{padding:0;list-style:none}.chapter-info li{float:left;display:inline-block;margin:0 5px 5px 0;padding:2px 10px 0;border-radius:3px;background:#f3f3f3;color:#5b5b5b}.chapter-info i{color:#3b93c3;font-size:1.125em;vertical-align:middle}.chapter-info span{font-weight:600;font-size:0.688em}.toggle-content{padding:5px 0;background:#f3f3f3;color:#747474;font-weight:600;font-size:0.813em;text-align:center;cursor:pointer}.label{border-radius:3px;display:inline-block;padding:2px 5px;margin:0 5px;float:left;background:#3b93c3;color:#fff}.label-free{background:#54c670;float:none}.product-landing .course-promotion{padding:0}.product-landing .course-promotion .coupon{padding:10px;font-size:1em}.product-landing .course-promotion .valid-coupon{background-color:#54c670;color:#fff}.product-landing .course-promotion .invalid-coupon{background-color:#ffed8f;color:#8f7800}@media only screen and (max-width: 767px){.product-landing section{padding-top:40px;padding-bottom:40px}.product-landing section p,.product-landing section ul{font-size:0.938em}.product-landing .product__title{font-size:1.750em !important}.product-landing .section-title{margin-bottom:24px;font-size:1.750em !important}.product-landing .title-block{width:90%}}@media only screen and (max-width: 479px){.product-landing .product-main-cta .btn{padding:12px;font-size:1.125em}}.high-convert-landing .btn-intro-video{margin-bottom:10px}.high-convert-landing .product-main-cta{margin-top:30px}.high-convert-landing .course-instructor{margin-top:48px;background:#f3f3f3;color:#5b5b5b}.high-convert-landing .course-instructor img{max-width:100%}.high-convert-landing .course-instructor .instructor__img-wrap{margin-top:-120px;text-align:center}.high-convert-landing .course-instructor .instructor__img{border-radius:50%;margin-bottom:10px;height:162px;width:162px;border:5px solid #ffffff}.high-convert-landing .course-instructor .instructor__details{margin-bottom:36px}.high-convert-landing .course-instructor .instructor__name{font-size:1.250em;font-weight:600;text-align:center}.high-convert-landing .course-instructor .instructor__title{text-align:center}.high-convert-landing .course-curriculum{background:#e6e6e6}.high-convert-landing .course-curriculum .section-title{color:#5b5b5b}.high-convert-landing .course-curriculum .curriculum-chapter{margin:0 0 10px 0 !important}.high-convert-landing .course-curriculum .curriculum-chapter-header{padding:10px 15px !important;background:#3b93c3 !important}.high-convert-landing .course-curriculum .curriculum-chapter-header .chapter-time{color:#fff;text-align:right}.high-convert-landing .course-curriculum .chapter-header{font-weight:bold;color:#fff}.high-convert-landing .course-curriculum .chapter-list-item__link{display:block}.high-convert-landing .course-curriculum .chapter-list-item__link:hover{background:#f3f3f3}.high-convert-landing .course-curriculum .chapter-list-item{position:relative;padding:5px 45px 5px 15px;color:#5b5b5b}.high-convert-landing .course-curriculum .chapter-list-item i{-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);position:absolute;top:50%;right:25px;font-size:1.250em;color:#5b5b5b}.high-convert-landing .course-curriculum .chapter-toggle{border-radius:0;border:0;background:#ffffff}.high-convert-landing .course-curriculum .course-main-cta{padding-top:36px}@media only screen and (max-width: 479px){.high-convert-landing .course-instructor{margin-top:60px}.high-convert-landing .instructor__img-wrap{margin-top:-80px}.high-convert-landing .instructor__img{height:108px;width:108px}.high-convert-landing .curriculum-chapter-header{padding:5px 15px !important}.high-convert-landing .toggle-content{padding:0 !important}.high-convert-landing .course-curriculum .chapter-time{text-align:left}}.curriculum-landing .course-actions{padding:25px 0;border-bottom:1px solid #cdcdcd;background:#f3f3f3}.curriculum-landing .section-title{color:#5b5b5b}.curriculum-landing .btn-intro-video{margin-top:20px}.curriculum-landing .course-body{position:relative}.curriculum-landing .sidebar-filler{position:absolute;right:0;bottom:0;height:100%;border-left:1px solid #cdcdcd}.curriculum-landing .course-includes{margin-bottom:24px}.curriculum-landing .course-includes ul{display:inline;padding:0;color:#5b5b5b;list-style:none}.curriculum-landing .course-includes li{display:inline-block;margin-right:3px;margin-bottom:6px;padding:5px 6px 3px 4px;border:1px solid #cdcdcd;border-radius:3px;background:#ffffff;color:#5b5b5b;font-size:0.813em;white-space:nowrap}.curriculum-landing .course-includes li:last-of-type{margin-right:0}.curriculum-landing .course-includes i{color:#3b93c3;font-weight:400;font-size:1.125em;line-height:1;vertical-align:middle}.curriculum-landing .course-curriculum{padding-right:20px}.curriculum-landing .curriculum-chapter+.curriculum-chapter{margin-top:16px}.curriculum-landing .chapter-toggle{padding:0;border:1px solid #cdcdcd;border-radius:3px;background:#ffffff}.curriculum-landing .curriculum-chapter-header{padding:10px 15px !important}.curriculum-landing .curriculum-chapter-header .chapter-time{color:#fff;text-align:right}.curriculum-landing .chapter-header{color:#3b93c3;font-weight:600;line-height:1}.curriculum-landing .chapter-list{padding:5px 0}.curriculum-landing .chapter-list-item{position:relative;padding:5px 45px 5px 15px;color:#5b5b5b;font-size:0.875em}.curriculum-landing .chapter-list-item i{-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);position:absolute;top:50%;right:25px;color:#5b5b5b;font-size:1.250em}.curriculum-landing .chapter-time{float:right;display:inline-block;margin-top:8px;padding:0 10px;border-radius:50%;background:#3b93c3;color:#fff;font-size:0.875em;text-align:center}.curriculum-landing .course-details{padding:0 0 40px 18px}.curriculum-landing .course-details .product-overview,.curriculum-landing .course-details .course-instructor{margin-bottom:48px}.curriculum-landing .course-details .social-icons{font-size:1px}.curriculum-landing .course-details .social-icons iframe{vertical-align:middle}.curriculum-landing .course-details .share-btn{display:inline-block;width:75px;vertical-align:middle}.curriculum-landing .course-details .less{overflow:hidden;height:270px}.curriculum-landing .course-details__section{margin-bottom:48px}.curriculum-landing .instructor__details{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;margin:0 0 20px 0;font-weight:600}.curriculum-landing .instructor__img{width:70px;height:70px;margin-right:20px;border:1px solid #cdcdcd;border-radius:50%}.curriculum-landing .multi-product__description{padding:5px 10px;line-height:1.5}.curriculum-landing .multi-product__description .price{font-size:1em}.curriculum-landing .multi-product__description .title{font-size:0.875em}@media only screen and (max-width: 991px){.curriculum-landing .course-body .course-curriculum{margin-bottom:40px}.curriculum-landing .course-curriculum{padding-right:0}.curriculum-landing .course-details{padding:0}.curriculum-landing .sidebar-filler{display:none}}@media only screen and (max-width: 767px){.curriculum-landing .chapter-time{float:none;margin-top:12px}}@media only screen and (max-width: 479px){.curriculum-landing .course-includes{margin-bottom:24px}.curriculum-landing .course-actions{padding:10px}}.bundle-content{background:#f3f3f3}.bundle-content .section-title{color:#5b5b5b}.bundle-cta-tagline{margin-top:10px;color:#fff}.bundle-content__item{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;padding:10px}.bundle-content__item::after{clear:both;content:"";display:table}.bundle-content__item .row{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center}.bundle-content__item-img{border-radius:3px;height:auto;width:100%}.bundle-content__item-title{font-size:1.125em}.bundle-content__item+.bundle-content__item,.bundle-content__item+.bundle-course--hidden,.bundle-course--hidden+.bundle-course--hidden{margin-top:12px}.bundle-see-more-content{padding-top:32px}@media only screen and (max-width: 479px){.bundle-content__item-title{font-size:1em}}.multi-products .multi-product__item,.course-multi-products .multi-product__item{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;margin:0 0 6px 0}.multi-products .multi-product__buy,.course-multi-products .multi-product__buy{display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}.multi-products .multi-product__cta,.course-multi-products .multi-product__cta{border-radius:0;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-ms-flex-pack:center;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1;font-size:1em}.multi-products .multi-product__description,.course-multi-products .multi-product__description{padding:10px 18px;background:#f3f3f3}.multi-products .multi-product__description .price,.course-multi-products .multi-product__description .price{line-height:1.5;font-weight:600}@media only screen and (max-width: 767px){.multi-products .multi-product__item,.course-multi-products .multi-product__item{display:block;margin-bottom:24px}.multi-products .multi-product__cta,.course-multi-products .multi-product__cta{padding:3px}}.user-sign-up .section-title{text-align:center;margin-bottom:30px}.user-sign-up .sign_up__or,.user-sign-up .sign_in__or{margin:15px auto;font-weight:600;line-height:1.5;text-align:center;text-transform:uppercase}.user-sign-up .help-block{display:none}.user-sign-up .has-error .help-block{font-size:0.750em;margin:0;padding:0;display:block}.user-sign-up .checkbox{margin:0}.user-sign-up .remember-me-link{line-height:21px}.user-sign-up .btn-primary{font-size:1em;padding:8px 0}.user-sign-up__alt-logins{text-align:center}.user-sign-up__alt-logins .btn+.btn{margin-left:10px}.user-sign-up__bottom{padding:30px;text-align:center}.user-sign-up__bottom a{font-size:0.938em;color:#5b5b5b}.user-sign-up__bottom a:hover,.user-sign-up__bottom a:focus,.user-sign-up__bottom a:active{text-decoration:underline}@media only screen and (max-width: 767px){.user-sign-up .remember-me-link,.user-sign-up .forgot-password{font-size:0.875em}}@media only screen and (max-width: 479px){.user-sign-up__alt-logins .btn+.btn{margin-top:5px;margin-left:0}}.products__filters{margin-bottom:35px}.products__filters select{-webkit-appearance:menulist;-moz-appearance:menulist;-ms-appearance:menulist;-o-appearance:menulist;appearance:menulist}.products__filters [type="search"]{width:100%}.student-dashboard__hero{padding:40px 30px;background:#ffffff;border-bottom:1px solid #eee}.student-dashboard__title{margin-top:0;font-size:1.875em;font-weight:300;line-height:1;margin-bottom:1.5rem}@media only screen and (max-width: 767px){.products__filter-box{margin-bottom:10px}.student-dashboard__hero{padding:20px 15px}.student-dashboard__title{font-size:1.625em}}.checkout-form-container__inner{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;padding:20px}.checkout-form-container__inner::after{clear:both;content:"";display:table}.checkout-form__body .section-title{margin:0 0 25px 0;line-height:1.25;font-size:1.250em}.checkout-form__bottom{padding-top:25px;text-align:center}.checkout-form__bottom a{color:#3b93c3}.checkout-form__purchase{padding:0 10px;margin-bottom:15px;text-align:center}.checkout-form__purchase-img{border-radius:2px;max-width:180px;height:auto;margin-bottom:15px}.checkout-form__purchase-description{max-width:90%;margin:0 auto;font-size:1.063em}.order-security{padding-top:20px;margin-bottom:20px}.coupon-form__coupon-code [type="text"]{width:100%}img[src*="googleadservices.com"]{position:absolute;top:-2px;left:-2px}#progressbar{margin:0 auto 25px;padding:0;width:70%;counter-reset:step;list-style:none}#progressbar::after{clear:both;content:"";display:table}#progressbar li{list-style-type:none;color:#5b5b5b;text-align:center;font-size:0.688em;width:50%;float:left;position:relative;z-index:2}#progressbar li:before{border-radius:50%;content:counter(step);counter-increment:step;width:20px;height:20px;line-height:20px;display:block;font-size:0.813em;color:#fff;background:#dadada;margin:0 auto 5px auto;z-index:2}#progressbar li:after{content:'';width:100%;height:1px;background:#dadada;position:absolute;left:calc( -50% + 10px);top:9px;z-index:-1}#progressbar li:first-child:after{content:none}#progressbar li.active:before,#progressbar li.active:after{background:#3b93c3}.order-product__list{font-size:1.125em;margin-bottom:10px;text-align:left}.order-product__total-amount,.order-product__coupon-name{padding-top:12px}.order-product__coupon .coupon-check{margin-bottom:10px;text-align:right;font-size:1em}.order-product__coupon .coupon{padding:10px 0 20px}.checkout-auth-container .credit-card{padding-top:10px}.checkout-auth-container .credit-card .btn{margin-top:20px}.checkout-auth-container .credit-card__expiry-date .expiration-date{padding-top:11px}.checkout-auth-container .paypal-button-row{text-align:center}.checkout-auth-container .paypal-button-row__text{font-size:11px;margin:5px 0}.checkout-thankyou .multi-products{margin-bottom:50px;padding-top:20px}.checkout-thankyou__course{padding:5px 0}.checkout-thankyou__course+.checkout-thankyou__course{margin-top:8px}.checkout-thankyou__course:nth-of-type(even){background:#f3f3f3}.checkout-thankyou__course-name{font-size:1.125em;line-height:1.8}.checkout-bundle__more_enrollments_limit{margin:10px}@media only screen and (max-width: 767px){.checkout-thankyou__course-name,.checkout-thankyou__button{text-align:center}.checkout-thankyou__course{padding:10px}.checkout-thankyou__course:nth-of-type(even){background:none}}.checkout-auth-container #local-payment-errors,.checkout-auth-container #coupon-errors,.checkout-auth-container .payment-errors{display:none;color:red}.checkout-auth-container #local-payment-errors{margin-bottom:10px}.checkout-auth-container #coupon-errors{padding-top:10px;font-size:0.750em}.checkout-form #errors{border-radius:3px;list-style:none;font-weight:300;font-size:0.875em;background:#ffd4cc;color:#e75725;margin-top:20px;padding:15px;line-height:145%}.checkout-form .alert-error{font-size:0.750em;color:#e75725}.checkout-form .error-title{font-weight:bold;margin-bottom:5px}.checkout-form .alert-error a{text-decoration:underline;color:inherit}.checkout-form .alert-hide{display:none}.checkout-form .has-error .form-control{border-color:#e75725}.checkout-form #errors{margin-top:0;margin-bottom:20px}@media only screen and (min-width: 768px){.coupon-form__coupon-button .btn{padding:10px 15px}}@media only screen and (max-width: 767px){.credit-card__expiry-date{margin-bottom:10px}.credit-card__expiry-date .expiration-date{padding-top:0}.checkout-form-container .form-group{margin-bottom:12px}.checkout-form-container .section-title{font-size:1.125em}.checkout-form-container__inner{padding:15px}.coupon-form__coupon-code,.coupon-form__applied{margin-bottom:10px}.coupon-form__coupon-button{text-align:right}.coupon-form__coupon-button .btn{width:auto;min-width:100px}#progressbar{width:100%;margin-bottom:15px}#progressbar li:before{width:10px;height:10px;line-height:10px;content:"\00a0"}#progressbar li:after{left:calc( -50% + 5px);top:5px}.checkout-form__purchase-img{max-width:120px}.checkout-form__purchase-description{font-size:0.875em;width:100%}}@media only screen and (max-width: 479px){.order-product__list{font-size:0.875em}.order-product__coupon .coupon-check{font-size:0.875em;margin-bottom:20px}}.video-landing .product-banner{height:auto;padding:100px 0 240px}.video-landing .product__title{font-weight:bold}.video-landing .title-block{margin-bottom:15px}.video-landing .embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.video-landing .embed-container iframe,.video-landing .embed-container object,.video-landing .embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.video-landing .course-description{position:relative}.video-landing .course-video{width:50%;margin:-200px auto 60px;box-shadow:5px 5px 29px -6px rgba(0,0,0,0.39)}.video-landing .course-instructor{margin-top:48px;background:#f3f3f3;color:#5b5b5b}.video-landing .course-instructor img{max-width:100%}.video-landing .instructor__img-wrap{margin-top:-154px;text-align:center}.video-landing .instructor__details{margin-bottom:36px}.video-landing .instructor__name{font-size:1.625em;text-align:center}.video-landing .instructor__title{text-align:center}.video-landing .instructor__img{border-radius:50%;margin-bottom:20px;height:170px;width:170px;box-shadow:5px 5px 29px -6px rgba(0,0,0,0.2)}.video-landing .curriculum-chapter+.curriculum-chapter{margin-top:45px}.video-landing .chapter-name{font-size:1.625em;line-height:1.2;padding-right:30px;text-align:right}.video-landing .chapter-time{padding-top:10px;padding-right:30px;text-align:right}.video-landing .chapter-list{border-left:1px solid #eee}.video-landing .chapter-list-item{position:relative;padding:4px 30px 4px 15px}.video-landing .chapter-list-item i{position:absolute;right:0;top:3px;font-size:26px;color:#5b5b5b}.video-landing .course-related-products{background:#eee}.video-landing .multi-product__item{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;margin-bottom:15px;padding:15px;text-align:center}.video-landing .multi-product__item::after{clear:both;content:"";display:table}.video-landing .multi-product__item .price{font-size:22px;text-transform:uppercase}.video-landing .multi-product__description{margin-bottom:20px}@media only screen and (max-width: 991px){.video-landing .product-banner{padding:50px 0 200px}}@media only screen and (max-width: 767px){.video-landing .product-banner{padding:30px 0 150px}.video-landing .course-video{width:50%;margin:-150px auto 40px}.video-landing .curriculum-chapter+.curriculum-chapter{margin-top:30px;padding-top:30px;border-top:1px solid #e7e7e7}.video-landing .chapter-name{margin-bottom:20px;text-align:left;font-size:1.250em}.video-landing .chapter-list{border-left:none}.video-landing .chapter-list-item{padding-left:0}.video-landing .product__title{margin-bottom:10px}.video-landing .instructor__img-wrap{margin-top:-100px}.video-landing .instructor__img{border-radius:50%;height:130px;width:130px;box-shadow:5px 5px 29px -6px rgba(0,0,0,0.2)}.video-landing .instructor__details{margin-bottom:18px}}@media only screen and (max-width: 479px){.video-landing .product-banner{padding:30px 0 60px}.video-landing .course-video{width:70%;margin:-55px auto 30px}}.student-profile .btn-upload{opacity:0;display:inline-block;width:0;width:100%}.student-profile .account-content-profile-img{margin:20px 0 40px}.student-profile .account-content-profile-img img{height:100px;width:100px}.student-profile #feedback-area{padding-top:10px;font-size:13px}.student-profile #error_explanation{border-radius:4px;position:relative;font-size:14px;background:#ffd4cc;color:#e75725;padding:12px 30px;margin:0 0 30px 0;text-align:center}.student-profile #error_explanation h2{font-size:14px;margin:10px 0;color:#e75725}.student-profile #error_explanation ul{list-style:none}.account-content,.affiliate-content{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;padding:20px}.account-content::after,.affiliate-content::after{clear:both;content:"";display:table}.account-content::after,.affiliate-content::after{clear:both;content:"";display:table}.account-content .account-content-footer,.account-content .affiliate-content-footer,.affiliate-content .account-content-footer,.affiliate-content .affiliate-content-footer{padding-top:30px}.account-content__back-link{margin-bottom:30px;display:inline-block}.account-menu,.affiliate-menu{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff}.account-menu::after,.affiliate-menu::after{clear:both;content:"";display:table}.account-menu .list-group-item,.affiliate-menu .list-group-item{padding:15px 10px;border:0}.account-menu a.list-group-item:hover,.account-menu a.list-group-item:focus,.affiliate-menu a.list-group-item:hover,.affiliate-menu a.list-group-item:focus{color:#3b93c3;background:#f3f3f3}.account-menu a.list-group-item.active,.account-menu a.list-group-item.active:hover,.account-menu a.list-group-item.active:focus,.affiliate-menu a.list-group-item.active,.affiliate-menu a.list-group-item.active:hover,.affiliate-menu a.list-group-item.active:focus{color:#3b93c3;background:#f3f3f3;border-color:none}.account-menu .badge,.affiliate-menu .badge{background:#3b93c3;color:#fff}.account-menu a.list-group-item.active>.badge,.account-menu .nav-pills>.active>a>.badge,.affiliate-menu a.list-group-item.active>.badge,.affiliate-menu .nav-pills>.active>a>.badge{background:#3b93c3;color:#fff}.reset-password-container{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;padding:20px}.reset-password-container::after{clear:both;content:"";display:table}.reset-password-container .reset-password__title{margin-top:0}.single-task-view{background:#f4f5f7 url(https://assets.thinkific.com/assets/defaults/bg-shapes-grey-f1a814e2f65da464153ef67885ca0311.png) top left;overflow-y:auto}.single-task-view .container{padding-top:15px;margin-bottom:20px}.single-task-view .container .thinkific-logo{width:150px;margin-bottom:10px}.single-task-view .single-task-view__card{border-radius:3px;box-shadow:1px 1px 0 #e2e2e2;position:relative;background:#ffffff;padding:20px}.single-task-view .single-task-view__card::after{clear:both;content:"";display:table}.single-task-view .single-task-view__title{line-height:1.25;margin-bottom:0.6em}.single-task-view .single-task-view__subtitle{margin-bottom:1.5em}@media only screen and (max-width: 767px){.single-task-view .container{padding-top:15px}}@media print{a[href]:after{content:none !important}.col-print-12{width:100% !important}}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiMjAxNzA1MTcwMTE5NTkvKF9fVEVNUExBVEVfXykuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIyMDE3MDUxNzAxMTk1OS8oX19URU1QTEFURV9fKSIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLAoJCSIuLi9zaGFyZWQvYnVuZGxlL3J1YnkvMi4xLjAvZ2Vtcy9ib3VyYm9uLTQuMi42L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsCgkJIi4uL3NoYXJlZC9idW5kbGUvcnVieS8yLjEuMC9nZW1zL2JvdXJib24tNC4yLjYvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwKCQkiLi4vc2hhcmVkL2J1bmRsZS9ydWJ5LzIuMS4wL2dlbXMvYm91cmJvbi00LjIuNi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgXCJib3VyYm9uXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOb3JtYWxpemUgaHR0cHM6Ly9uZWNvbGFzLmdpdGh1Yi5pby9ub3JtYWxpemUuY3NzL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaHRtbHtmb250LWZhbWlseTpzYW5zLXNlcmlmOy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9Ym9keXttYXJnaW46MH1hcnRpY2xlLGFzaWRlLGRldGFpbHMsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFpbixtZW51LG5hdixzZWN0aW9uLHN1bW1hcnl7ZGlzcGxheTpibG9ja31hdWRpbyxjYW52YXMscHJvZ3Jlc3MsdmlkZW97ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9YXVkaW86bm90KFtjb250cm9sc10pe2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MH1baGlkZGVuXSx0ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWE6YWN0aXZlLGE6aG92ZXJ7b3V0bGluZTowfWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206MXB4IGRvdHRlZH1iLHN0cm9uZ3tmb250LXdlaWdodDo3MDB9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9bWFya3tiYWNrZ3JvdW5kOiNmZjA7Y29sb3I6IzAwMH1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1cHt0b3A6LS41ZW19c3Vie2JvdHRvbTotLjI1ZW19aW1ne2JvcmRlcjowfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhyey1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowfXByZXtvdmVyZmxvdzphdXRvfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0O21hcmdpbjowfWJ1dHRvbntvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxpbnB1dFt0eXBlPVwic3VibWl0XCJdey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Y3Vyc29yOnBvaW50ZXJ9YnV0dG9uW2Rpc2FibGVkXSxodG1sIGlucHV0W2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjA7cGFkZGluZzowfWlucHV0e2xpbmUtaGVpZ2h0Om5vcm1hbH1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0saW5wdXRbdHlwZT1cInJhZGlvXCJde2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfWlucHV0W3R5cGU9XCJzZWFyY2hcIl17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9aW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfWZpZWxkc2V0e2JvcmRlcjoxcHggc29saWQgc2lsdmVyO21hcmdpbjowIDJweDtwYWRkaW5nOi4zNWVtIC42MjVlbSAuNzVlbX1sZWdlbmR7Ym9yZGVyOjA7cGFkZGluZzowfXRleHRhcmVhe292ZXJmbG93OmF1dG99b3B0Z3JvdXB7Zm9udC13ZWlnaHQ6NzAwfXRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfXRkLHRoe3BhZGRpbmc6MH1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNBU1MgVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb2xvdXJzOiBTaXRlXG4vLyAtLS0tLS0tLS0tLS0tLS1cbiRwcmltYXJ5LWNvbG9yOiAjM2I5M2MzO1xuJHNpdGUtYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcblxuLy8gQ29sb3VyczogQnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tXG4kcHJpbWFyeS1idG4tY29sb3I6ICMzYjUwNjI7XG4kc2Vjb25kYXJ5LWJ0bi1jb2xvcjogI2ZhZmFmYTtcblxuLy8gQ29sb3VyczogSGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbiRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiRoZWFkZXItdGV4dC1jb2xvcjogIzQzNDM0MztcblxuLy8gQ29sb3VyczogRm9vdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbiRmb290ZXItYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcblxuLy8gQ29sb3VyczogTmV1dHJhbFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4kY29sb3ItbmV1dHJhbDogI2NkY2RjZDtcbiRjb2xvci1uZXV0cmFsLWxpZ2h0LTE6ICNlZWVlZWU7XG4kY29sb3ItbmV1dHJhbC1saWdodC0yOiAjZjNmM2YzO1xuJGNvbG9yLW5ldXRyYWwtbGlnaHQtMzogI2ZlZmVmZTtcbiRjb2xvci1uZXV0cmFsLWRhcmstMTogI2IyYjJiMjtcblxuLy8gQ29sb3VyczogVGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4kdGV4dC1jb2xvcjogIzViNWI1YjtcbiR0ZXh0LWNvbG9yLWxpZ2h0OiAjZmZmZmZmO1xuJGxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4vLyBDb2xvdXJzOiBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cbiRzdWNjZXNzLWdyZWVuOiAjNTRjNjcwO1xuJGFsZXJ0LXllbGxvdzogI2ZmZWQ4ZjtcblxuXG4vLyBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS1cbiRzY3JlZW4tc20tbWluOiA0ODBweDtcbiRzY3JlZW4tbWQtbWluOiA3NjhweDtcbiRzY3JlZW4tbGctbWluOiA5OTJweDtcbiRzY3JlZW4teGwtbWluOiAxMjAwcHg7XG4kc2NyZWVuLXh4bC1taW46IDE2MDBweDtcblxuJHNjcmVlbi14cy1tYXg6ICgkc2NyZWVuLXNtLW1pbiAtIDEpO1xuJHNjcmVlbi1zbS1tYXg6ICgkc2NyZWVuLW1kLW1pbiAtIDEpO1xuJHNjcmVlbi1tZC1tYXg6ICgkc2NyZWVuLWxnLW1pbiAtIDEpO1xuJHNjcmVlbi1sZy1tYXg6ICgkc2NyZWVuLXhsLW1pbiAtIDEpO1xuXG4vLyBNaXNjXG4vLyAtLS0tLS0tLS0tLS0tLVxuJGJvcmRlci1yYWRpdXM6IDNweDtcbiRzZWN0aW9uLW1heC13aWR0aDogMTI1MHB4O1xuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRoaXMgaXMgYSBzaW1wbGUgbWl4aW4gZm9yIGNhcmQgc3R5bGVzLiBDYXJkIHN0eWxlcyBhcmUgdXNlZCBvbiBjb3Vyc2Vcbi8vIGNhcmRzLCBhbmQgcGFzc3dvcmQgcmVzZXQgYm94ZXMuIFRoaXMgaXMgbWVhbnQgdG8gd29yayBmb3IgZXZlcnl0aGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gY2FyZCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMCAjZTJlMmUyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cblxuLy8gVGhpcyBtYWtlcyB0ZXh0IGNvbG91ciBjaGFuZ2UgaWYgdGhlIGJhY2tncm91bmQgY29sb3VyIGlzIHRvbyBsaWdodCBvciBkYXJrXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBmdW5jdGlvbiBkeW5hbWljLXRleHQoJGNvbG9yKSB7XG4gIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiA4NSkge1xuICAgIEByZXR1cm4gJHRleHQtY29sb3I7IC8vIExpZ2h0ZXIgYmFja2dyb3VuZCwgcmV0dXJuIGRhcmsgY29sb3JcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkdGV4dC1jb2xvci1saWdodDsgLy8gRGFya2VyIGJhY2tncm91bmQsIHJldHVybiBsaWdodCBjb2xvclxuICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRhYmxlIG9mIGNvbnRlbnRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAwLiBCYXNpY3Ncbi8vIDEuIFR5cGVcbi8vIDIuIEZvcm1zXG4vLyAzLiBCdXR0b25zXG4vLyA0LiBMYXlvdXRcbi8vIDUuIENvdXJzZSBDYXJkc1xuLy8gNi4gSGVhZGVyXG4vLyA3LiBGb290ZXJcbi8vIDguIFJldmlldyBTdGFyc1xuLy8gOS4gUGFnaW5hdGlvblxuLy8gMTAuIFNpdGUgTGFuZGluZyBQYWdlXG4vLyAxMS4gU2hhcmVkIHByb2R1Y3QgbGFuZGluZyBwYWdlIHN0eWxlc1xuLy8gMTIuIEhpZ2ggQ29udmVyc2lvbiBsYW5kaW5nIHBhZ2Vcbi8vIDEzLiBDdXJyaWN1bHVtIGxhbmRpbmcgcGFnZVxuLy8gMTQuIEJ1bmRsZSBsYW5kaW5nIHBhZ2Vcbi8vIDE1LiBNdWx0aSBQcm9kdWN0c1xuLy8gMTYuIFNpZ24gdXAgLyBTaWduIGluXG4vLyAxNy4gTXkgQ291cnNlcy9EYXNoYm9hcmRcbi8vIDE4LiBBbGwgQ291cnNlcy9TdHVkZW50IERhc2hib2FyZFxuLy8gMTkuIENoZWNrb3V0XG4vLyAyMC4gQ291cnNlIExhbmRpbmcgUGFnZSAtIFZpZGVvIENlbnRyaWNcbi8vIDIxLiBTdHVkZW50L0FmZmlsaWF0ZSBlZGl0IGFjY291bnRcbi8vIDIyLiBGb3Jnb3QgUGFzc3dvcmRcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDAuIEJhc2ljc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaHRtbCwgYm9keSB7XG4gIGJhY2tncm91bmQ6ICRzaXRlLWJhY2tncm91bmQtY29sb3I7XG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIGZvbnQtc2l6ZTogMWVtOyAvLzE2cHhcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAxLiBUeXBlIENvbnZlcnRlZCB0byBFTSB1c2luZyBodHRwOi8vcHh0b2VtLmNvbS9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDIuMTg4ZW07IC8vMzVweFxufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS44NzVlbTsgLy8zMHB4XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjYyNWVtOyAvLzI2cHhcbn1cblxuaDQge1xuICBmb250LXNpemU6IDEuNDM4ZW07IC8vIDIzcHhcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMTI1ZW07IC8vMThweFxufVxuXG5wIHtcbiAgZm9udC1zaXplOiAxZW07IC8vMTZweFxufVxuXG5ociB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWw7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDIwcHggMDtcbn1cblxuaSwgZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbmEge1xuICBjb2xvcjogJGxpbmstY29sb3I7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGRhcmtlbigkbGluay1jb2xvciwgMTIlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxudWwsIG9sIHtcbiAgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLy8gUmVtb3ZlcyBsaXN0IHN0eWxlXG4udW5zdHlsZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIGZvciBzYW5pdHlcbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gMi4gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmlucHV0OmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5pbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7IGNvbG9yOnRyYW5zcGFyZW50OyB9XG5cbi5mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1saWdodC0zO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA2cHggMTVweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07IC8vMTZweFxufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBJIGFtIGZvdW5kIG9ubHkgb24gdGhlIGNvbGxlY3Rpb25zIHBhZ2UuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4xcyBlYXNlKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnRpemUoJHRleHQtY29sb3IsMC45KTtcblxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB9XG59XG5cbi5yYWRpbywgLmNoZWNrYm94IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLy8gVXNlZCBvbiB0aGUgU2lnbiBpbi9TaWduIHVwL0NoZWNrb3V0IGZsb3cuIFN0eWxlcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gdGhlXG4vLyBzb2NpYWwgc2lnbiBpbiBidXR0b25zIGFuZCB0aGUgc2lnbiBpbiB3aXRoIGVtYWlsIGZvcm0uXG4uZm9ybV9fc2VwYXJhdG9yIHtcbiAgbWFyZ2luOiAxNXB4IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gMy4gQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8vIEJ1dHRvbjogTW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tXG4uYnRuLWxhcmdlIHtcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1zaXplOiAxLjEyNWVtOyAvLzE4cHhcbn1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gQnV0dG9uOiBDb2xvdXJzXG4vLyAtLS0tLS0tLS0tLS0tXG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1idG4tY29sb3I7XG4gIGNvbG9yOiBkeW5hbWljLXRleHQoJHByaW1hcnktYnRuLWNvbG9yKTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWJ0bi1jb2xvciwgMTAlKTtcbiAgICBjb2xvcjogZHluYW1pYy10ZXh0KCRwcmltYXJ5LWJ0bi1jb2xvcik7XG4gIH1cbn1cblxuLmJ0bi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWJ0bi1jb2xvcjtcbiAgY29sb3I6IGR5bmFtaWMtdGV4dCgkc2Vjb25kYXJ5LWJ0bi1jb2xvcik7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWJ0bi1jb2xvciwgMTAlKTtcbiAgICBjb2xvcjogZHluYW1pYy10ZXh0KCRzZWNvbmRhcnktYnRuLWNvbG9yKTtcbiAgfVxufVxuXG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1kYXJrLTE7XG4gIGNvbG9yOiAjZmZmZmZmO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGNvbG9yLW5ldXRyYWwtZGFyay0xLCAxMCUpO1xuICB9XG59XG5cbi8vIFRoaXMgaXMgdXNlZCBhcyB0aGUgTGlua2VkaW4gYnV0dG9uIG9uIHRoZSBzaWduIHVwLlxuLy8gLS0tLS0tLS0tLS0tLS0tXG4ubGlua2VkaW4tc2lnbmluIHtcbiAgYmFja2dyb3VuZDogIzQ4NzViNDtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yLWxpZ2h0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oIzQ4NzViNCwgMTAlKTtcbiAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDQuIExheW91dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI3dyYXAge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgLy8gRXF1YWwgdG8gZm9vdGVyIGhlaWdodFxuICBtYXJnaW4tYm90dG9tOiAtMTY2cHg7XG4gIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHNpdGUtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xufVxuXG4vLyBXcmFwOiBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1pbi13aWR0aDogJHNjcmVlbi14eGwtbWluKSB7XG4gICN3cmFwIHtcbiAgICBtYXgtd2lkdGg6ICRzY3JlZW4teHhsLW1pbjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBkYXJrZW4oJHNpdGUtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGRhcmtlbigkc2l0ZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gIH1cbn1cblxuXG4vLyBDb250YWluZXIgb24gdGhlIGNoZWNrb3V0L3BheW1lbnQgZmxvdywgc2lnbiBpbi9zaWduIHVwIGZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4jY29udGVudC1wdXNoIHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG59XG5cbi8vIENvbnRlbnQtcHVzaDogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAjY29udGVudC1wdXNoIHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAjY29udGVudC1wdXNoIHtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgfVxufVxuXG5cbi8vIENvbnRhaW5lcnMgZm9yIGludGVyaW9yIGNvbnRlbnQgc2VjdGlvbnMuIE1vc3RseSBzdXJyb3VuZGluZyB0aGUgY291cnNlIGNhcmRzXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi5zaXRlLWxhbmRpbmdfX2NvdXJzZXMsXG4ucHJvZHVjdHMtd3JhcHBlcixcbi5zdHVkZW50LWRhc2hib2FyZC13cmFwcGVyLFxuLmNoZWNrb3V0LWZvcm0sXG4uc3R1ZGVudC1wcm9maWxlIHtcbiAgbWF4LXdpZHRoOiAkc2VjdGlvbi1tYXgtd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzNXB4IDA7XG59XG5cbi5zaXRlLWxhbmRpbmdfX2NvdXJzZXMge1xuICBwYWRkaW5nLXRvcDogNjBweDtcbn1cblxuLy8gQ29udGFpbmVyczogTW9iaWxlXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgLnNpdGUtbGFuZGluZ19fY291cnNlcyxcbiAgLnByb2R1Y3RzLXdyYXBwZXIsXG4gIC5zdHVkZW50LWRhc2hib2FyZC13cmFwcGVyLFxuICAuY2hlY2tvdXQtZm9ybSxcbiAgLnN0dWRlbnQtcHJvZmlsZSB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICB9XG59XG5cblxuLy8gQ29sdW1uc1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbi5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDc1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDc1cHg7XG59XG5cbi8vIENvbHVtbnM6IE1vYmlsZVxuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gIC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMTAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1tZC1tYXgpIHtcbiAgLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA1NXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDU1cHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIH1cbn1cblxuXG4vLyBNaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuLnZpc2libGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDUuIENvdXJzZSBDYXJkc1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNhcmQge1xuICBAaW5jbHVkZSBjYXJkO1xufVxuXG4vLyBDYXJkOiBNb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNhcmQtLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJkLS1wYWRkaW5nLTUge1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5jYXJkLS1wYWRkaW5nLTE1IHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLmNhcmQtLXBhZGRpbmctMjAge1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG5cbi8vIENhcmQ6IFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNhcmQtLWJvdHRvbS1tYXJnaW4tMTAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY2FyZC0tYm90dG9tLW1hcmdpbi0yMCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cblxuLy8gQ291cnNlIGNhcmQgaW1hZ2Vcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbi5jb3Vyc2UtY2FyZCB7XG4gIGhlaWdodDogNDY4cHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvdXJzZS1jYXJkX19pbWcge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygzcHgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY291cnNlLWNhcmRfX2ltZy1jb250YWluZXIge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygzcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIyMHB4O1xufVxuXG5cbi8vIENvdXJzZSBjYXJkIGJvZHlcbi8vIC0tLS0tLS0tLS0tLS0tXG4uY291cnNlLWNhcmRfX2JvZHkge1xuICBwYWRkaW5nOiAyMHB4IDIwcHggMTBweDtcbn1cblxuLmNvdXJzZS1jYXJkX19pbnN0cnVjdG9yLW5hbWUge1xuICBmb250LXNpemU6IDAuODc1ZW07IC8vMTRweFxufVxuXG4uY291cnNlLWNhcmRfX3ByaWNlIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODc1ZW07IC8vMTVweFxuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICAuZnJlZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uY291cnNlLWNhcmRfX3RpdGxlIHtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBmb250LXNpemU6IDEuMTI1ZW07IC8vMThweFxuXG4gIGEge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgfVxufVxuXG4uY291cnNlLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6IGxpZ2h0ZW4oJHRleHQtY29sb3IsMjUlKTtcbiAgZm9udC1zaXplOiAwLjkzOGVtOyAvLzE1cHhcbn1cblxuXG4vLyBDb3Vyc2UgY2FyZCBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4uY291cnNlLWNhcmRfX2N0YSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMCAyMHB4O1xuXG4gIC5idG4ge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgfVxuXG4gIGEge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5jb3Vyc2UtY2FyZF9fY3RhLXNlY29uZGFyeSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cblxuLy8gUHJvZ3Jlc3MgQ2FyZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4ucHJvZ3Jlc3MtY2FyZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAuY291cnNlLWNhcmRfX2JvZHkge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICB9XG5cbiAgLmNvdXJzZS1jYXJkX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnByb2dyZXNzLWNhcmQtcHJvZ3Jlc3Mge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICB9XG5cbiAgLnByb2dyZXNzLWNvbXBsZXRpb24ge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICBmb250LXNpemU6IDEuODc1ZW07IC8vMzBweFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5wcm9ncmVzcy1saW5lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG5cbiAgICAucHJvZ3Jlc3MtbGluZS1wZXJjZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAucHJvZ3Jlc3MtbGluZS1iYXIge1xuICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDYXJkczogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSBzY3JlZW5cbmFuZCAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAuY291cnNlLWNhcmRfX2ltZy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIwMnB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW5cbmFuZCAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbilcbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1kLW1heCkge1xuXG4gIC5jb3Vyc2UtY2FyZCB7XG4gICAgaGVpZ2h0OiA0ODFweDtcbiAgfVxuXG4gIC5jb3Vyc2UtY2FyZF9faW1nLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjM1cHg7XG4gIH1cblxuICAuY291cnNlLWNhcmRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMDYzZW07IC8vMTdweFxuICB9XG59XG5cbkBtZWRpYSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAuY291cnNlLWNhcmQge1xuICAgIG1heC13aWR0aDogMzcwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLmNvdXJzZS1jYXJkX19jdGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmNvdXJzZS1jYXJkX19ib2R5IHtcbiAgICAuc3Rhci1yYXRpbmcge1xuICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDYuIEhlYWRlciBOYXZcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuaGVhZGVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAkaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG5cbiAgYSB7XG4gICAgY29sb3I6ICRoZWFkZXItdGV4dC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogZGFya2VuKCRoZWFkZXItdGV4dC1jb2xvciwgMjAlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTmF2YmFyOiBMb2dvXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuLmhlYWRlci1sb2dvX19pbWFnZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAzNXB4O1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLmhlYWRlci1zY2hvb2wtbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEuODc1ZW07IC8vMzBweFxufVxuXG5cbi8vIE5hdmJhcjogTGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4uaGVhZGVyLW5hdl9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkZXItbmF2X19pdGVtIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBOYXZiYXI6IERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuLmhlYWRlci11c2VyLWF2YXRhciB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiAyNXB4O1xuICB3aWR0aDogMjVweDtcbiAgbWFyZ2luOiAtMjVweCA1cHggLTIxcHg7XG59XG5cbi5kcm9wZG93biB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi8vIE92ZXJyaWRlIHRoZSBkZWZhdWx0IEJvb3RzdHJhcCBzdHlsZXNcbi5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiAyMnB4O1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogJGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICBib3JkZXI6IDA7XG5cbiAgJiA+IGxpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gICYgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAkaGVhZGVyLXRleHQtY29sb3I7XG4gIH1cblxuICAmID4gbGkgPiBhOmhvdmVyLFxuICAmID4gbGkgPiBhOmFjdGl2ZSxcbiAgJiA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICRoZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXRleHQtY29sb3I7XG4gIH1cbn1cblxuLy8gTmF2YmFyOiBNb2JpbGVcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4uaGVhZGVyLW5hdl9fbW9iaWxlLWJ0biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGNvbG9yOiAkaGVhZGVyLXRleHQtY29sb3I7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRoZWFkZXItdGV4dC1jb2xvcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yO1xuICB9XG59XG5cblxuLy8gTmF2YmFyOiBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcblxuICBoZWFkZXIgLmNvbHVtbiB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuaGVhZGVyLWxvZ29fX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAuaGVhZGVyLW5hdl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuaGVhZGVyLW5hdiB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuaGVhZGVyLW5hdl9fbGlzdCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgfVxuXG4gIC5oZWFkZXItbmF2X19sZWZ0LFxuICAuaGVhZGVyLW5hdl9fcmlnaHQge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLmhlYWRlci1uYXZfX3JpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC5oZWFkZXItbmF2X19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgfVxuXG4gIC5oZWFkZXItbmF2X19pdGVtICsgLmhlYWRlci1uYXZfX2l0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG5cbiAgLmhlYWRlci1uYXYge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICB9XG5cbiAgLmhlYWRlci1zY2hvb2wtbmFtZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4NXB4O1xuICB9XG5cbiAgLmhlYWRlci1uYXZfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIE1vYmlsZSBtZW51IGFkZHMgb3BlbiBjbG9zZSBjbGFzcyB3aGVuIHRvZ2dsZWRcbiAgLmhlYWRlci1uYXZfX2NvbnRhaW5lci5vcGVue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmhlYWRlci1uYXZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOTM4ZW07IC8vMTVweFxuICB9XG5cbiAgLmhlYWRlci1uYXZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgfVxuXG4gIC5oZWFkZXItbG9nb19fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuaGVhZGVyLW5hdl9fbW9iaWxlLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgfVxuXG4gIC5kcm9wZG93biB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gNy4gRm9vdGVyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9zdGlja3ktZm9vdGVyL1xuZm9vdGVyLCAjd3JhcDphZnRlciB7XG4gIGhlaWdodDogMTY2cHg7XG59XG5cbmZvb3RlciB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogJHNjcmVlbi14eGwtbWluO1xuICBiYWNrZ3JvdW5kOiAkZm9vdGVyLWJhY2tncm91bmQtY29sb3I7XG4gIHBhZGRpbmc6IDMwcHggMDtcbiAgY29sb3I6IGR5bmFtaWMtdGV4dCgkZm9vdGVyLWJhY2tncm91bmQtY29sb3IpO1xuXG5cbiAgYSB7XG4gICAgY29sb3I6IGR5bmFtaWMtdGV4dCgkZm9vdGVyLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG4uZm9vdGVyLW5hdiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMzBweCAwO1xufVxuXG4uZm9vdGVyLW5hdl9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbn1cblxuLmZvb3Rlci1uYXZfX2l0ZW0gKyAuZm9vdGVyLW5hdl9faXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZm9vdGVyLWNvcHlyaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMC43NTBlbTsgLy8xMnB4XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmZvb3Rlci1wb3dlcmVkLWJ5IHtcbiAgZm9udC1zaXplOiAwLjc1MGVtOyAvLzEycHhcbn1cblxuLy8gRm9vdGVyOiBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1pbi13aWR0aDogJHNjcmVlbi14eGwtbWluKSB7XG4gIGZvb3RlciB7XG4gICAgbWF4LXdpZHRoOiAkc2NyZWVuLXh4bC1taW47XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKCRzaXRlLWJhY2tncm91bmQtY29sb3IsIDEwJSk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgZGFya2VuKCRzaXRlLWJhY2tncm91bmQtY29sb3IsIDEwJSk7XG4gIH1cbn1cblxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gOC4gUmV2aWV3IFN0YXJzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uc3Rhci1yYXRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDkwcHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWlCM2FXUjBhRDBpTWpCd2VDSWdhR1ZwWjJoMFBTSXlNSEI0SWlCMmFXVjNRbTk0UFNJd0lEQWdNakFnTWpBaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lESXdJREl3SWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNDhjRzlzZVdkdmJpQm1hV3hzUFNJalJFUkVSRVJFSWlCd2IybHVkSE05SWpFd0xEQWdNVE11TURrc05pNDFPRE1nTWpBc055NDJNemtnTVRVc01USXVOelkwSURFMkxqRTRMREl3SURFd0xERTJMalU0TXlBekxqZ3lMREl3SURVc01USXVOelkwSURBc055NDJNemtnTmk0NU1TdzJMalU0TXlBaUx6NDhMM04yWno0PVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgaSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNakJ3ZUNJZ2FHVnBaMmgwUFNJeU1IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01qQWdNakFpSUdWdVlXSnNaUzFpWVdOclozSnZkVzVrUFNKdVpYY2dNQ0F3SURJd0lESXdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGNHOXNlV2R2YmlCbWFXeHNQU0lqUmtaRVJqZzRJaUJ3YjJsdWRITTlJakV3TERBZ01UTXVNRGtzTmk0MU9ETWdNakFzTnk0Mk16a2dNVFVzTVRJdU56WTBJREUyTGpFNExESXdJREV3TERFMkxqVTRNeUF6TGpneUxESXdJRFVzTVRJdU56WTBJREFzTnk0Mk16a2dOaTQ1TVN3MkxqVTRNeUFpTHo0OEwzTjJaejQ9XCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgaSB+IGkge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cblxuICBpIH4gaSB+IGkge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cblxuICBpIH4gaSB+IGkgfiBpIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG5cbiAgaSB+IGkgfiBpIH4gaSB+IGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5zdGFyLXJhdGluZ19faW5wdXQge1xuICBpbnB1dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpob3ZlciArIGksXG4gICAgJjpjaGVja2VkICsgaSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4uc3Rhci1yYXRpbmdfX2ZpbGxlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5zdGFyX3JhdGluZ19fc2luZ2xlIHtcbiAgd2lkdGg6IDI1cHg7XG59XG5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDkuIFBhZ2luYXRpb25cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGEsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYTpmb2N1cyxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1uZXV0cmFsLWxpZ2h0LTI7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yLW5ldXRyYWw7XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbn1cblxuLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW4ge1xuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLW5ldXRyYWw7XG59XG5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDEwLiBTaXRlIExhbmRpbmcgUGFnZVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnNpdGUtbGFuZGluZ19fYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQwMHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBjb2xvcjogZHluYW1pYy10ZXh0KCRwcmltYXJ5LWNvbG9yKTtcbn1cblxuLnNpdGUtbGFuZGluZ19fYmFubmVyLWNvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAkc2VjdGlvbi1tYXgtd2lkdGg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnByb2R1Y3QtY2FyZHNfX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBAbWVkaWEgb25seSBzY3JlZW5cbiAgYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgLy8gcmVtb3ZlcyB0aGUgYmVmb3JlIGFuZCBhZnRlciBjbGVhciBmaXhlcyBmb3IgdGhpcyByb3csIHRvIGZpeCB0aGUgZmxleGJveCBpbiBzYWZhcmkuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBub3JtYWw7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU2l0ZSBMYW5kaW5nOiBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG4gIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAuc2l0ZS1sYW5kaW5nX19iYW5uZXIge1xuICAgIGhlaWdodDogMzAwcHg7XG4gIH1cblxuICAuc2l0ZS1sYW5kaW5nX19iYW5uZXItLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1ZW07IC8vMzBweFxuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAuc2l0ZS1sYW5kaW5nX19iYW5uZXItLXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjUwZW07IC8vMjBweFxuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuXG4gIC5zaXRlLWxhbmRpbmdfX2Jhbm5lcntcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG5cbiAgLnNpdGUtbGFuZGluZ19fYmFubmVyLS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjYyNWVtOyAvLzI2cHhcbiAgfVxuXG4gIC5zaXRlLWxhbmRpbmdfX2Jhbm5lci0tc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45MzhlbTsgLy8xNXB4XG4gIH1cbn1cblxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gMTEuIFNoYXJlZCBQcm9kdWN0IExhbmRpbmcgU3R5bGVzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucHJvZHVjdC1sYW5kaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAxZW07IC8vMTZweFxuICBsaW5lLWhlaWdodDogMS44O1xuXG4gIHNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuXG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBwIGEge1xuICAgICAgY29sb3I6ICRsaW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBjb250cm9scyB0aGUgdGl0bGUgdGV4dCBvbiBldmVyeSBzZWN0aW9uLlxuICAvLyBFeDogJ0NvdXJzZSBPdmVydmlldydcbiAgLy8gLS0tLS0tLS0tLS0tLS1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgNDJweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXNpemU6IDIuMjUwZW07IC8vMzZweFxuICB9XG59XG5cbi8vIFRoaXMgaXMgdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gZm9yIHRoZSBjb3Vyc2UuXG4vLyBJdCdzIG5vdCBmb3VuZCBpbiB0aGUgaW5zdHJ1Y3RvciBzZWN0aW9uLiBJdCdzIGZvdW5kIGluIHRoZVxuLy8gQ291cnNlID4gRGV0YWlscyBzZWN0aW9uIGF0IHRoZSBib3R0b20uIEl0IGNhbiBjb250YWluIHRleHQgYW5kIEhUTUxcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4uY291cnNlLWNvbnRhY3QtaW5mbyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBQcm9kdWN0IExhbmRpbmc6IFByb2R1Y3QgQmFubmVyICh0aGUgZ2lhbnQgaW1hZ2UgdGhhdCBzcGFucyBhY3Jvc3MgdGhlIHRvcCBvZiB0aGUgcGFnZSlcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4ucHJvZHVjdC1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC50aXRsZS1ibG9jayB7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5wcm9kdWN0X190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMzBweDtcbiAgICBjb2xvcjogZHluYW1pYy10ZXh0KCRwcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMi40MzhlbTsgLy8zOXB4XG4gIH1cblxuICAucHJvZHVjdF9fc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiBkeW5hbWljLXRleHQoJHByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxZW07IC8vMTZweFxuICB9XG5cbiAgLnByb2R1Y3RfX3ByaXZhdGUtdGl0bGUge1xuICAgIGNvbG9yOiBkeW5hbWljLXRleHQoJHByaW1hcnktY29sb3IpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDEuMTI1ZW07IC8vMThweFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUG9wcyBvcGVuIHRoZSB2ZW5vYm94IHdpbmRvd1xuLy8gLS0tLS0tLS0tLS0tXG5cbi5idG4taW50cm8tdmlkZW8ge1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGV4dC1jb2xvci1saWdodDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yLWxpZ2h0O1xuICBmb250LXNpemU6IDFlbTsgLy8xNnB4XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0ZXh0LWNvbG9yLWxpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICR0ZXh0LWNvbG9yLWxpZ2h0O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAuYnRuLWludHJvLXZpZGVvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweFxuICB9XG59XG5cbi8vIENhbGwgdG8gYWN0aW9uIGJsb2Nrcy4gVGhleSBsaXN0IGluIHRoZSBwYWdlIGhlYWRlciBhbmQgaW4gYSBzZWN0aW9uXG4vLyBpbnNpZGUgdGhlIHBhZ2UgYm9keS5cbi8vIC0tLS0tLS0tLS0tLVxuXG4ucHJvZHVjdC1tYWluLWN0YSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuYnRuIHtcbiAgICBwYWRkaW5nOiAxNXB4IDQwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDEuMjUwZW07IC8vMjBweFxuICB9XG59XG5cbi5wcm9kdWN0LWJvZHktYnV0dG9uLWJsb2NrIHtcbiAgLmJ1bmRsZS1jdGEtdGFnbGluZSB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG59XG5cbi8vIFByb2R1Y3QgTGFuZGluZzogUHJvZHVjdCBPdmVydmlld1xuLy8gLS0tLS0tLS0tLS0tXG5cbi5wcm9kdWN0LW92ZXJ2aWV3IHtcbiAgLy8gVGhpcyBjb250cm9scyB0aGUgd2lkdGggb2YgdGhlIGltYWdlcyBwZW9wbGUgcHV0IGluIHRoZSByZWRhY3RvciBib3hcbiAgLy8gb24gdGhlIGN1cnJpY3VsdW0gbGFuZGluZyBwYWdlXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnJlYWRtb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAucmVhZG1vcmUtdG9nZ2xlIHtcbiAgICBtYXJnaW4tdG9wOiAyNnB4O1xuICB9XG59XG5cbi8vIFNob3dzIHVwIHVuZGVyIHRoZSBjb3Vyc2UgZGVzY3JpcHRpb24gYW5kIGlzIGVkaXRhYmxlIGJ5IHRoZSB1c2VyXG4uY291cnNlLWNvbnRhY3QtaW5mbyB7XG4gIG1hcmdpbjogMDtcblxuICBwIHtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgfVxufVxuXG4vLyBQcm9kdWN0IExhbmRpbmc6IENvdXJzZSBSZXZpZXdzXG4vLyAtLS0tLS0tLS0tLS1cblxuLmNvdXJzZS1yZXZpZXdfX2NvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmNvdXJzZS1yZXZpZXdfX25hbWUge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xufVxuXG4uY291cnNlLXJldmlld19fc3RhcnMge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uY291cnNlLXJldmlld19fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4ucmV2aWV3LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBQcm9kdWN0IExhbmRpbmc6IENoYXB0ZXIvQ3VycmljdWx1bSBzZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuLmNoYXB0ZXItaW5mbyB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4IDVweCAwO1xuICAgIHBhZGRpbmc6IDJweCAxMHB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLWxpZ2h0LTI7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG5cbiAgaSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVlbTsgLy8xOHB4XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjY4OGVtOyAvLzExcHhcbiAgfVxufVxuXG4udG9nZ2xlLWNvbnRlbnQge1xuICBwYWRkaW5nOiA1cHggMDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtbGlnaHQtMjtcbiAgY29sb3I6IGRhcmtlbigkY29sb3ItbmV1dHJhbC1saWdodC0yLCA1MCUpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODEzZW07IC8vMTNweFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuXG4vLyBMYWJlbCB1c2VkIHRvIHNob3cgXCJGcmVlXCIgY29udGVudCBvbiB0aGUgbGFuZGluZyBwYWdlc1xuLy8gLS0tLS0tLS0tLS0tXG5cbi5sYWJlbCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yLWxpZ2h0O1xufVxuXG4ubGFiZWwtZnJlZSB7XG4gIGJhY2tncm91bmQ6ICRzdWNjZXNzLWdyZWVuO1xuICBmbG9hdDogbm9uZTtcbn1cblxuLy8gUHJvZHVjdCBMYW5kaW5nOiBQcm9tb3Rpb25zXG4vLyBUaGlzIHNob3dzIHVwIHdoZW4gdGhlIHVzZXIgaXMgZ2l2ZW4gYSBjb3Vwb24gbGlua1xuLy8gY291cnNlLXVybC8/Y291cG9uPTEwMFxuLy8gLS0tLS0tLS0tLS0tXG5cbi5wcm9kdWN0LWxhbmRpbmcgLmNvdXJzZS1wcm9tb3Rpb24ge1xuICBwYWRkaW5nOiAwO1xuXG4gIC5jb3Vwb24ge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxZW07IC8vMTZweFxuICB9XG5cbiAgLnZhbGlkLWNvdXBvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN1Y2Nlc3MtZ3JlZW47XG4gICAgY29sb3I6IGxpZ2h0ZW4oJHN1Y2Nlc3MtZ3JlZW4sIDUwJSk7XG4gIH1cblxuICAuaW52YWxpZC1jb3Vwb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydC15ZWxsb3c7XG4gICAgY29sb3I6IGRhcmtlbigkYWxlcnQteWVsbG93LCA1MCUpO1xuICB9XG59XG5cbi8vIFByb2R1Y3QgTGFuZGluZzogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG5cbiAgLnByb2R1Y3QtbGFuZGluZyB7XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgfVxuXG4gICAgc2VjdGlvbiBwLFxuICAgIHNlY3Rpb24gdWwge1xuICAgICAgZm9udC1zaXplOiAwLjkzOGVtOyAvLzE1cHhcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjc1MGVtICFpbXBvcnRhbnQ7IC8vMjhweFxuICAgIH1cblxuICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICBmb250LXNpemU6IDEuNzUwZW0gIWltcG9ydGFudDsgLy8yOHB4XG4gICAgfVxuXG4gICAgLnRpdGxlLWJsb2NrIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gIC5wcm9kdWN0LWxhbmRpbmcge1xuICAgIC5wcm9kdWN0LW1haW4tY3RhIC5idG4ge1xuICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVlbTsgLy8xOHB4XG4gICAgfVxuICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDEyLiBEZWZhdWx0IC8gSGlnaCBjb252ZXJzaW9uIGxhbmRpbmcgcGFnZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhpZ2gtY29udmVydC1sYW5kaW5nIC5idG4taW50cm8tdmlkZW8ge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uaGlnaC1jb252ZXJ0LWxhbmRpbmcgLnByb2R1Y3QtbWFpbi1jdGEge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uaGlnaC1jb252ZXJ0LWxhbmRpbmcgLmNvdXJzZS1pbnN0cnVjdG9yIHtcbiAgbWFyZ2luLXRvcDogNDhweDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtbGlnaHQtMjtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuXG4gIC8vIFRoaXMgY29udHJvbHMgdGhlIHdpZHRoIG9mIHRoZSBpbWFnZXMgcGVvcGxlIHB1dCBpbiB0aGUgcmVkYWN0b3IgYm94XG4gIC8vIG9uIHRoZSBjdXJyaWN1bHVtIGxhbmRpbmcgcGFnZVxuICAvLyAtLS0tLS0tLS0tLS0tLVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5pbnN0cnVjdG9yX19pbWctd3JhcCB7XG4gICAgbWFyZ2luLXRvcDogLTEyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5pbnN0cnVjdG9yX19pbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGhlaWdodDogMTYycHg7XG4gICAgd2lkdGg6IDE2MnB4O1xuICAgIGJvcmRlcjogNXB4IHNvbGlkICNmZmZmZmY7XG4gIH1cblxuICAuaW5zdHJ1Y3Rvcl9fZGV0YWlscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgfVxuXG4gIC5pbnN0cnVjdG9yX19uYW1lIHtcbiAgICBmb250LXNpemU6IDEuMjUwZW07IC8vMjBweFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmluc3RydWN0b3JfX3RpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLy8gSGlnaCBDb252ZXJzaW9uIGxhbmRpbmc6IENvdXJzZSBDdXJyaWN1bHVtXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4uaGlnaC1jb252ZXJ0LWxhbmRpbmcgLmNvdXJzZS1jdXJyaWN1bHVtIHtcbiAgYmFja2dyb3VuZDogZGFya2VuKCRjb2xvci1uZXV0cmFsLWxpZ2h0LTIsIDUlKTtcblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG5cbiAgLy8gU3R5bGVzIGNoYXB0ZXIgYmxvY2sgaW4gdGhlIGN1cnJpY3VsdW0gbGlzdFxuICAuY3VycmljdWx1bS1jaGFwdGVyIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBmb3IgdGhlIGNoYXB0ZXIgaGVhZGVyXG4gIC5jdXJyaWN1bHVtLWNoYXB0ZXItaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgLmNoYXB0ZXItdGltZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuY2hhcHRlci1oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiBkeW5hbWljLXRleHQoJHByaW1hcnktY29sb3IpO1xuICB9XG5cbiAgLmNoYXB0ZXItbGlzdC1pdGVtX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtbGlnaHQtMjtcbiAgICB9XG4gIH1cblxuICAuY2hhcHRlci1saXN0LWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA1cHggNDVweCA1cHggMTVweDtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG5cbiAgICBpIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDI1cHg7XG4gICAgICBmb250LXNpemU6IDEuMjUwZW07IC8vMjBweFxuICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgaXMgdGhlIGJ1dHRvbiB0aGF0IG9wZW4gdXAgdGhlIGNoYXB0ZXIgY29udGVudHMgbGlzdFxuICAuY2hhcHRlci10b2dnbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIH1cblxuICAuY291cnNlLW1haW4tY3RhIHtcbiAgICBwYWRkaW5nLXRvcDogMzZweDtcbiAgfVxufVxuXG4vLyBIaWdoIENvbnZlcnNpb24gbGFuZGluZzogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG5cbiAgLmhpZ2gtY29udmVydC1sYW5kaW5nIHtcblxuICAgIC5jb3Vyc2UtaW5zdHJ1Y3RvciB7XG4gICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIH1cblxuICAgIC5pbnN0cnVjdG9yX19pbWctd3JhcCB7XG4gICAgICBtYXJnaW4tdG9wOiAtODBweDtcbiAgICB9XG5cbiAgICAuaW5zdHJ1Y3Rvcl9faW1nIHtcbiAgICAgIGhlaWdodDogMTA4cHg7XG4gICAgICB3aWR0aDogMTA4cHg7XG4gICAgfVxuXG4gICAgLmN1cnJpY3VsdW0tY2hhcHRlci1oZWFkZXIge1xuICAgICAgcGFkZGluZzogNXB4IDE1cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudG9nZ2xlLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jb3Vyc2UtY3VycmljdWx1bSAgLmNoYXB0ZXItdGltZSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAxMy4gQ3VycmljdWx1bSBMYW5kaW5nIHBhZ2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5jdXJyaWN1bHVtLWxhbmRpbmcge1xuICAuY291cnNlLWFjdGlvbnMge1xuICAgIHBhZGRpbmc6IDI1cHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLW5ldXRyYWw7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtbGlnaHQtMjtcbiAgfVxuXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gIH1cblxuICAuYnRuLWludHJvLXZpZGVvIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgLy8gTWFrZXMgdGhlIHR3byBjb2x1bW5zIGxvb2sgbGlrZSB0aGV5IG1hdGNoXG4gIC8vIC0tLS0tLS0tLS0tLS0tLVxuXG4gIC5jb3Vyc2UtYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnNpZGViYXItZmlsbGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1uZXV0cmFsO1xuICB9XG5cbiAgLy8gQ3VycmljdWx1bSBMYW5kaW5nOiBDb3Vyc2UgSW5jbHVkZXMgTGlzdFxuICAvLyBTaG93cyB0aGUgbGl0dGxlIDEgdmlkZW8sIDEgdGV4dCwgYW5kIGNvdXJzZSB0aW1lIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLVxuXG4gIC5jb3Vyc2UtaW5jbHVkZXMge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICB1bCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgIHBhZGRpbmc6IDVweCA2cHggM3B4IDRweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1uZXV0cmFsO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAwLjgxM2VtOyAvLzEzcHhcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGkge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVlbTsgLy8xOHB4XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3VycmljdWx1bSBMYW5kaW5nOiBDb3Vyc2UgQ3VycmljdWx1bVxuICAvLyAtLS0tLS0tLS0tLS0tLS1cblxuICAuY291cnNlLWN1cnJpY3VsdW0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cblxuICAuY3VycmljdWx1bS1jaGFwdGVyICsgLmN1cnJpY3VsdW0tY2hhcHRlciB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxuXG4gIC5jaGFwdGVyLXRvZ2dsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB9XG5cbiAgLy8gQ29udGFpbmVyIGZvciB0aGUgY2hhcHRlciBoZWFkZXJcbiAgLmN1cnJpY3VsdW0tY2hhcHRlci1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDEwcHggMTVweCAhaW1wb3J0YW50O1xuXG4gICAgLmNoYXB0ZXItdGltZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuY2hhcHRlci1oZWFkZXIge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLmNoYXB0ZXItbGlzdCB7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gIH1cblxuICAuY2hhcHRlci1saXN0LWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA1cHggNDVweCA1cHggMTVweDtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcblxuICAgIGkge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMjVweDtcbiAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNTBlbTsgLy8yMHB4XG4gICAgfVxuICB9XG5cbiAgLmNoYXB0ZXItdGltZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyBDdXJyaWN1bHVtIExhbmRpbmc6IENvdXJzZSBEZXRhaWxzIFNpZGViYXJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiAgLmNvdXJzZS1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAwIDAgNDBweCAxOHB4O1xuXG4gICAgLnByb2R1Y3Qtb3ZlcnZpZXcsXG4gICAgLmNvdXJzZS1pbnN0cnVjdG9yIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBnZXRzIEdvb2dsZSB0byBmYWxsIGludG8gcGxhY2VcbiAgICAuc29jaWFsLWljb25zIHtcbiAgICAgIGZvbnQtc2l6ZTogMXB4O1xuXG4gICAgICAvLyBUaGlzIGdldHMgRmFjZWJvb2sgdG8gZmFsbCBpbnRvIHBsYWNlXG4gICAgICBpZnJhbWUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCBhbiBvcHRpb25hbCB3aWR0aCBmb3IgeW91ciBidXR0b24gd3JhcHBlcnNcbiAgICAuc2hhcmUtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAubGVzcyB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgaGVpZ2h0OiAyNzBweDtcbiAgICB9XG4gIH1cblxuICAuY291cnNlLWRldGFpbHNfX3NlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gIH1cblxuICAuaW5zdHJ1Y3Rvcl9fZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLmluc3RydWN0b3JfX2ltZyB7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICAvLyBDdXJyaWN1bHVtIExhbmRpbmc6IE11bHRpLXByb2R1Y3RzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLVxuXG4gIC5tdWx0aS1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgIC5wcmljZSB7XG4gICAgICBmb250LXNpemU6IDFlbTsgLy8xNnB4XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsgLy8xNHB4XG4gICAgfVxuICB9XG5cbiAgLy8gQ3VycmljdWx1bSBMYW5kaW5nOiBNZWRpYSBRdWVyaWVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlblxuICBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1tZC1tYXgpIHtcbiAgICAuY291cnNlLWJvZHkge1xuICAgICAgLmNvdXJzZS1jdXJyaWN1bHVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY291cnNlLWN1cnJpY3VsdW0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAuY291cnNlLWRldGFpbHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuc2lkZWJhci1maWxsZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW5cbiAgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgLmNoYXB0ZXItdGltZSB7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW5cbiAgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgLmNvdXJzZS1pbmNsdWRlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cblxuICAgIC5jb3Vyc2UtYWN0aW9ucyB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAxNC4gQnVuZGxlIExhbmRpbmcgUGFnZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQnVuZGxlIGNvbnRlbnQgaXMgdGhlIGxpc3Qgb2YgUHJvZHVjdHMgdGhhdCBtYWtlcyB1cCB0aGUgYnVuZGxlLlxuLy8gV2UgZGlkbid0IHVzZSBub3JtYWwgY291cnNlIGNhcmRzIGJlY2F1c2Ugc29tZW9uZSBtaWdodCBoYXZlIG1vcmUgdGhhbiA1MCtcbi8vIGNvdXJzZXMgd2hpY2ggbWFrZXMgZm9yIGEgdmVyeSBsb25nIHBhZ2UuXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4uYnVuZGxlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1saWdodC0yO1xuXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gIH1cbn1cblxuLy8gYSBzaW5nbGUgbGluZSB0aGF0IHNpdHMgdW5kZXIgdGhlIGJ1dHRvbi4gS2luZCBvZiBhIGxpdHRsZSBleHRyYSB1cHNlbGxcbi5idW5kbGUtY3RhLXRhZ2xpbmUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogZHluYW1pYy10ZXh0KCRwcmltYXJ5LWNvbG9yKTtcbn1cblxuLmJ1bmRsZS1jb250ZW50X19pdGVtIHtcbiAgQGluY2x1ZGUgY2FyZDtcbiAgcGFkZGluZzogMTBweDtcblxuICAucm93IHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIH1cbn1cblxuLmJ1bmRsZS1jb250ZW50X19pdGVtLWltZyB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYnVuZGxlLWNvbnRlbnRfX2l0ZW0tdGl0bGUge1xuICBmb250LXNpemU6IDEuMTI1ZW07IC8vMThweFxufVxuXG4uYnVuZGxlLWNvbnRlbnRfX2l0ZW0gKyAuYnVuZGxlLWNvbnRlbnRfX2l0ZW0sXG4uYnVuZGxlLWNvbnRlbnRfX2l0ZW0gKyAuYnVuZGxlLWNvdXJzZS0taGlkZGVuLFxuLmJ1bmRsZS1jb3Vyc2UtLWhpZGRlbiArIC5idW5kbGUtY291cnNlLS1oaWRkZW4ge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4uYnVuZGxlLXNlZS1tb3JlLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMzJweDtcbn1cblxuXG4vLyBCdW5kbGUgTGFuZGluZyBQYWdlOiBNZWRpYSBRdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuXG4gIC5idW5kbGUtY29udGVudF9faXRlbS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxZW07IC8vMTZweDtcbiAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAxNS4gTXVsdGkgUHJvZHVjdHNcbi8vIElmIGFuIGFkbWluIHNlbGxzIG11bHRpcGxlIHByb2R1Y3RzIG9uIGEgc2luZ2xlIGxhbmRpbmcgcGFnZSB5b3Ugd2lsbCBnZXRcbi8vIHRoaXMgc2VjdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4ubXVsdGktcHJvZHVjdHMsXG4uY291cnNlLW11bHRpLXByb2R1Y3RzIHtcblxuICAubXVsdGktcHJvZHVjdF9faXRlbSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICBtYXJnaW46IDAgMCA2cHggMDtcbiAgfVxuXG4gIC5tdWx0aS1wcm9kdWN0X19idXkge1xuICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5tdWx0aS1wcm9kdWN0X19jdGEge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyAoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQgKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICBmb250LXNpemU6IDFlbTsgLy8xNnB4XG4gIH1cblxuICAubXVsdGktcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1saWdodC0yO1xuXG4gICAgLnByaWNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNdWx0aSBQcm9kdWN0czogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcblxuICAubXVsdGktcHJvZHVjdHMsXG4gIC5jb3Vyc2UtbXVsdGktcHJvZHVjdHMge1xuXG4gICAgLm11bHRpLXByb2R1Y3RfX2l0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cblxuICAgIC5tdWx0aS1wcm9kdWN0X19jdGEge1xuICAgICAgcGFkZGluZzogM3B4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAxNy4gU2lnbiB1cCAvIFNpZ24gaW5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi51c2VyLXNpZ24tdXAge1xuXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxuXG4gIC5zaWduX3VwX19vcixcbiAgLnNpZ25faW5fX29yIHtcbiAgICBtYXJnaW46IDE1cHggYXV0bztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuaGVscC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5oYXMtZXJyb3IgLmhlbHAtYmxvY2sge1xuICAgIGZvbnQtc2l6ZTogMC43NTBlbTsgLy8xMnB4XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuY2hlY2tib3gge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5yZW1lbWJlci1tZS1saW5rIHtcbiAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgfVxuXG4gIC5idG4tcHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAxZW07IC8vMTZweFxuICAgIHBhZGRpbmc6IDhweCAwO1xuICB9XG59XG5cbi8vIExpbmtlZGluIGJ1dHRvbiBhbmQgYW55IG90aGVyIHNvY2lhbC9sb2dpbiBidXR0b25zXG4udXNlci1zaWduLXVwX19hbHQtbG9naW5zIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5idG4gKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxufVxuXG4udXNlci1zaWduLXVwX19ib3R0b20ge1xuICBwYWRkaW5nOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYSB7XG4gICAgZm9udC1zaXplOiAwLjkzOGVtOyAvLzE1cHhcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpZ24gaW4vU2lnbiB1cDogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcblxuICAudXNlci1zaWduLXVwIHtcbiAgICAucmVtZW1iZXItbWUtbGluayxcbiAgICAuZm9yZ290LXBhc3N3b3JkIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsgLy8xNHB4XG4gICAgfVxuICB9XG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcblxuICAudXNlci1zaWduLXVwX19hbHQtbG9naW5zIHtcbiAgICAuYnRuICsgLmJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIDE4LiBBbGwgQ291cnNlcy9TdHVkZW50IERhc2hib2FyZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnByb2R1Y3RzX19maWx0ZXJzIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcblxuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGFwcGVhcmFuY2UobWVudWxpc3QpO1xuICB9XG5cbiAgW3R5cGU9XCJzZWFyY2hcIl17XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gU3R1ZGVudCBEYXNoYm9hcmQgKGVucm9sbG1lbnRzKVxuLy8gLS0tLS0tLS0tLS0tLVxuXG4uc3R1ZGVudC1kYXNoYm9hcmRfX2hlcm8ge1xuICBwYWRkaW5nOiA0MHB4IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbC1saWdodC0xO1xufVxuXG4uc3R1ZGVudC1kYXNoYm9hcmRfX3RpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1zaXplOiAxLjg3NWVtOyAvLzMwcHhcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLy8gQWxsIENvdXJzZXMvU3R1ZGVudCBEYXNoYm9hcmQ6IE1lZGlhIFF1ZXJpZXNcbi8vIC0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcblxuICAucHJvZHVjdHNfX2ZpbHRlci1ib3gge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAuc3R1ZGVudC1kYXNoYm9hcmRfX2hlcm8ge1xuICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgfVxuXG4gIC5zdHVkZW50LWRhc2hib2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS42MjVlbTsgLy8yNnB4XG4gIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIDE5LiBDaGVja291dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNoZWNrb3V0LWZvcm0tY29udGFpbmVyX19pbm5lciB7XG4gIEBpbmNsdWRlIGNhcmQ7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5jaGVja291dC1mb3JtX19ib2R5IHtcbiAgLnNlY3Rpb24tdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDI1cHggMDtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBmb250LXNpemU6IDEuMjUwZW07IC8vMjBweFxuICB9XG59XG5cbi5jaGVja291dC1mb3JtX19ib3R0b20ge1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGEge1xuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgfVxufVxuXG4uY2hlY2tvdXQtZm9ybV9fcHVyY2hhc2Uge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNoZWNrb3V0LWZvcm1fX3B1cmNoYXNlLWltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWF4LXdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4uY2hlY2tvdXQtZm9ybV9fcHVyY2hhc2UtZGVzY3JpcHRpb24ge1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZvbnQtc2l6ZTogMS4wNjNlbTsgLy8xN3B4XG59XG5cbi8vIFRoZSBzZWN1cmUgY2hlY2tvdXQgaW1hZ2VzIG9uIHRoZSBib3R0b20gbGVmdFxuLm9yZGVyLXNlY3VyaXR5IHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jb3Vwb24tZm9ybV9fY291cG9uLWNvZGUge1xuICBbdHlwZT1cInRleHRcIl17XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gRW5zdXJlIHRoYW5reW91IHBhZ2UgdHJhY2tpbmcgcGl4ZWwgaXMgbm90IHZpc2libGVcbmltZ1tzcmMqPVwiZ29vZ2xlYWRzZXJ2aWNlcy5jb21cIl0ge1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xufVxuXG4vLyBDaGVja291dDogUHJvZ3Jlc3MgYmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiNwcm9ncmVzc2JhciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46IDAgYXV0byAyNXB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogNzAlO1xuICBjb3VudGVyLXJlc2V0OiBzdGVwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4jcHJvZ3Jlc3NiYXIgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDAuNjg4ZW07IC8vMTFweFxuICB3aWR0aDogNTAlO1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuXG4gICY6YmVmb3JlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29udGVudDogY291bnRlcihzdGVwKTtcbiAgICBjb3VudGVyLWluY3JlbWVudDogc3RlcDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjgxM2VtOyAvLzEzcHhcbiAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gICAgYmFja2dyb3VuZDogI2RhZGFkYTtcbiAgICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogI2RhZGFkYTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyggLTUwJSArIDEwcHgpO1xuICAgIHRvcDogOXB4O1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZDphZnRlciB7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxuXG4gICYuYWN0aXZlOmJlZm9yZSxcbiAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG59XG5cblxuLy8gQ2hlY2tvdXQ6IENvbmZpcm0gT3JkZXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuLy8gTGlzdCBvZiBwcm9kdXRzIGJlaW5nIGJvdWdodCBhbmQgdGhlaXIgdG90YWwgcHJpY2Vcbi5vcmRlci1wcm9kdWN0X19saXN0IHtcbiAgZm9udC1zaXplOiAxLjEyNWVtOyAvLzE4cHhcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm9yZGVyLXByb2R1Y3RfX3RvdGFsLWFtb3VudCxcbi5vcmRlci1wcm9kdWN0X19jb3Vwb24tbmFtZSB7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4ub3JkZXItcHJvZHVjdF9fY291cG9uIHtcblxuICAuY291cG9uLWNoZWNrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMWVtOyAvLzE2cHhcbiAgfVxuXG4gIC5jb3Vwb24ge1xuICAgIHBhZGRpbmc6IDEwcHggMCAyMHB4O1xuICB9XG59XG5cbi8vIENoZWNrb3V0OiBQYXltZW50IEluZm9cbi8vIC0tLS0tLS0tLS0tLS1cblxuLmNoZWNrb3V0LWF1dGgtY29udGFpbmVyIHtcblxuICAuY3JlZGl0LWNhcmQge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuXG4gICAgLmJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5jcmVkaXQtY2FyZF9fZXhwaXJ5LWRhdGUge1xuICAgIC5leHBpcmF0aW9uLWRhdGUge1xuICAgICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgfVxuICB9XG5cbiAgLnBheXBhbC1idXR0b24tcm93IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAucGF5cGFsLWJ1dHRvbi1yb3dfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBtYXJnaW46IDVweCAwO1xuICB9XG59XG5cblxuLy8gQ2hlY2tvdXQ6IFRoYW5rIHlvdVxuLy8gLS0tLS0tLS0tLS0tLVxuXG4uY2hlY2tvdXQtdGhhbmt5b3UgLm11bHRpLXByb2R1Y3RzIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5jaGVja291dC10aGFua3lvdV9fY291cnNlIHtcbiAgcGFkZGluZzogNXB4IDA7XG5cbiAgJiArICYge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gICY6bnRoLW9mLXR5cGUoZXZlbil7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtbGlnaHQtMjtcbiAgfVxufVxuXG4uY2hlY2tvdXQtdGhhbmt5b3VfX2NvdXJzZS1uYW1lIHtcbiAgZm9udC1zaXplOiAxLjEyNWVtOyAvLzE4cHhcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuLmNoZWNrb3V0LWJ1bmRsZV9fbW9yZV9lbnJvbGxtZW50c19saW1pdCB7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuXG4vLyBDaGVja291dDogVGhhbmsgeW91XG4vLyAtLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gIC5jaGVja291dC10aGFua3lvdV9fY291cnNlLW5hbWUsXG4gIC5jaGVja291dC10aGFua3lvdV9fYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY2hlY2tvdXQtdGhhbmt5b3VfX2NvdXJzZSB7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgICY6bnRoLW9mLXR5cGUoZXZlbil7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENoZWNrb3V0OiBFcnJvcnNcbi8vIC0tLS0tLS0tLS0tLS1cblxuLmNoZWNrb3V0LWF1dGgtY29udGFpbmVyIHtcbiAgI2xvY2FsLXBheW1lbnQtZXJyb3JzLFxuICAjY291cG9uLWVycm9ycyxcbiAgLnBheW1lbnQtZXJyb3JzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiByZWQ7XG4gIH1cblxuICAvLyBFcnJvcnMgZm9yIGJhZCBjcmVkaXQgY2FyZCBudW1iZXIsIG9yIGludmFsaWQgZXhwaXJhdGlvblxuICAjbG9jYWwtcGF5bWVudC1lcnJvcnMge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAjY291cG9uLWVycm9ycyB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgZm9udC1zaXplOiAwLjc1MGVtOyAvLzEycHhcbiAgfVxufVxuXG4uY2hlY2tvdXQtZm9ybSB7XG4gICNlcnJvcnMge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgICBiYWNrZ3JvdW5kOiAjZmZkNGNjO1xuICAgIGNvbG9yOiAjZTc1NzI1O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMTQ1JTtcbiAgfVxuXG4gIC5hbGVydC1lcnJvciB7XG4gICAgZm9udC1zaXplOiAwLjc1MGVtOyAvLzEycHhcbiAgICBjb2xvcjogI2U3NTcyNTtcbiAgfVxuXG4gIC5lcnJvci10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG5cbiAgLmFsZXJ0LWVycm9yIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLmFsZXJ0LWhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICAgIGJvcmRlci1jb2xvcjogI2U3NTcyNTtcbiAgfVxufVxuXG4uY2hlY2tvdXQtZm9ybSAjZXJyb3JzIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuXG4vLyBDaGVja291dDogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAuY291cG9uLWZvcm1fX2NvdXBvbi1idXR0b24gLmJ0biB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gIC5jcmVkaXQtY2FyZF9fZXhwaXJ5LWRhdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAuZXhwaXJhdGlvbi1kYXRlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5jaGVja291dC1mb3JtLWNvbnRhaW5lciB7XG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuMTI1ZW07IC8vMThweFxuICAgIH1cbiAgfVxuXG4gIC5jaGVja291dC1mb3JtLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gIH1cblxuICAuY291cG9uLWZvcm1fX2NvdXBvbi1jb2RlLFxuICAuY291cG9uLWZvcm1fX2FwcGxpZWQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAuY291cG9uLWZvcm1fX2NvdXBvbi1idXR0b24ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmJ0biB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuICB9XG5cbiAgI3Byb2dyZXNzYmFyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgbGk6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICBjb250ZW50OiBcIlxcMDBhMFwiO1xuICAgIH1cblxuICAgIGxpOmFmdGVyIHtcbiAgICAgIGxlZnQ6IGNhbGMoIC01MCUgKyA1cHgpO1xuICAgICAgdG9wOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLmNoZWNrb3V0LWZvcm1fX3B1cmNoYXNlLWltZyB7XG4gICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgfVxuXG4gIC5jaGVja291dC1mb3JtX19wdXJjaGFzZS1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAub3JkZXItcHJvZHVjdF9fbGlzdCB7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgfVxuXG4gIC5vcmRlci1wcm9kdWN0X19jb3Vwb24gLmNvdXBvbi1jaGVjayB7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtOyAvLzE0cHhcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICAyMC4gQ291cnNlIExhbmRpbmcgUGFnZSAtIFZpZGVvIENlbnRyaWNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi52aWRlby1sYW5kaW5nIHtcblxuICAucHJvZHVjdC1iYW5uZXIge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAxMDBweCAwIDI0MHB4O1xuICB9XG5cbiAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC50aXRsZS1ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxuXG4gIC5lbWJlZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5lbWJlZC1jb250YWluZXIgaWZyYW1lLFxuICAuZW1iZWQtY29udGFpbmVyIG9iamVjdCxcbiAgLmVtYmVkLWNvbnRhaW5lciBlbWJlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jb3Vyc2UtZGVzY3JpcHRpb24ge1xuICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuY291cnNlLXZpZGVvIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbjogLTIwMHB4IGF1dG8gNjBweDtcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDI5cHggLTZweCByZ2JhKDAsMCwwLDAuMzkpO1xuICB9XG5cbiAgLmNvdXJzZS1pbnN0cnVjdG9yIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLWxpZ2h0LTI7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaW5zdHJ1Y3Rvcl9faW1nLXdyYXAge1xuICAgIG1hcmdpbi10b3A6IC0xNTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuaW5zdHJ1Y3Rvcl9fZGV0YWlscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgfVxuXG4gIC5pbnN0cnVjdG9yX19uYW1lIHtcbiAgICBmb250LXNpemU6IDEuNjI1ZW07IC8vMjZweFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5pbnN0cnVjdG9yX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmluc3RydWN0b3JfX2ltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgaGVpZ2h0OiAxNzBweDtcbiAgICB3aWR0aDogMTcwcHg7XG4gICAgYm94LXNoYWRvdzogNXB4IDVweCAyOXB4IC02cHggcmdiYSgwLDAsMCwwLjIpO1xuICB9XG5cbiAgLmN1cnJpY3VsdW0tY2hhcHRlciArIC5jdXJyaWN1bHVtLWNoYXB0ZXIge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gIH1cblxuICAuY2hhcHRlci1uYW1lIHtcbiAgICBmb250LXNpemU6IDEuNjI1ZW07IC8vMjZweFxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC5jaGFwdGVyLXRpbWUge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAuY2hhcHRlci1saXN0IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1uZXV0cmFsLWxpZ2h0LTE7XG4gIH1cblxuICAuY2hhcHRlci1saXN0LWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA0cHggMzBweCA0cHggMTVweDtcblxuICAgIGkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLmNvdXJzZS1yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1saWdodC0xO1xuICB9XG5cbiAgLm11bHRpLXByb2R1Y3RfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGNhcmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5wcmljZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5tdWx0aS1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG5cbi8vIFZpZGVvIExhbmRpbmcgUGFnZTogTWVkaWEgUXVlcmllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1tZC1tYXgpIHtcbiAgLnZpZGVvLWxhbmRpbmcge1xuXG4gICAgLnByb2R1Y3QtYmFubmVyIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggMCAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuXG5hbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgLnZpZGVvLWxhbmRpbmcge1xuXG4gICAgLnByb2R1Y3QtYmFubmVyIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMCAxNTBweDtcbiAgICB9XG5cbiAgICAuY291cnNlLXZpZGVvIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW46IC0xNTBweCBhdXRvIDQwcHg7XG4gICAgfVxuXG4gICAgLmN1cnJpY3VsdW0tY2hhcHRlciArIC5jdXJyaWN1bHVtLWNoYXB0ZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJHRleHQtY29sb3IsIDU1JSk7XG4gICAgfVxuXG4gICAgLmNoYXB0ZXItbmFtZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNTBlbTsgLy8yMHB4XG4gICAgfVxuXG4gICAgLmNoYXB0ZXItbGlzdCB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG5cbiAgICAuY2hhcHRlci1saXN0LWl0ZW0ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgIC5pbnN0cnVjdG9yX19pbWctd3JhcCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTAwcHg7XG4gICAgfVxuXG4gICAgLmluc3RydWN0b3JfX2ltZyB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBoZWlnaHQ6IDEzMHB4O1xuICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgYm94LXNoYWRvdzogNXB4IDVweCAyOXB4IC02cHggcmdiYSgwLDAsMCwwLjIpO1xuICAgIH1cblxuICAgIC5pbnN0cnVjdG9yX19kZXRhaWxzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gIC52aWRlby1sYW5kaW5nIHtcblxuICAgIC5wcm9kdWN0LWJhbm5lciB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDAgNjBweDtcbiAgICB9XG5cbiAgICAuY291cnNlLXZpZGVvIHtcbiAgICAgIHdpZHRoOiA3MCU7XG4gICAgICBtYXJnaW46IC01NXB4IGF1dG8gMzBweDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gMjEuIFN0dWRlbnQvQWZmaWxpYXRlIGVkaXQgYWNjb3VudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnN0dWRlbnQtcHJvZmlsZSB7XG5cbiAgLy8gVXBsb2FkIHN0dWRlbnQgaW5zdHJ1Y3RvciBpbWFnZVxuICAuYnRuLXVwbG9hZCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuYWNjb3VudC1jb250ZW50LXByb2ZpbGUtaW1nIHtcbiAgICBtYXJnaW46IDIwcHggMCA0MHB4O1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICB9XG5cbiAgI2ZlZWRiYWNrLWFyZWEge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuXG4gICNlcnJvcl9leHBsYW5hdGlvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZDRjYztcbiAgICBjb2xvcjogI2U3NTcyNTtcbiAgICBwYWRkaW5nOiAxMnB4IDMwcHg7XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgY29sb3I6ICNlNzU3MjU7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gU3R1ZGVudCBlZGl0IGFjY291bnQ6IENvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbi5hY2NvdW50LWNvbnRlbnQsXG4uYWZmaWxpYXRlLWNvbnRlbnQge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgQGluY2x1ZGUgY2FyZDtcbiAgcGFkZGluZzogMjBweDtcblxuICAuYWNjb3VudC1jb250ZW50LWZvb3RlcixcbiAgLmFmZmlsaWF0ZS1jb250ZW50LWZvb3RlciB7XG4gICAgcGFkZGluZy10b3A6IDMwcHg7XG4gIH1cbn1cblxuLmFjY291bnQtY29udGVudF9fYmFjay1saW5rIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cbi8vIFN0dWRlbnQgZWRpdCBhY2NvdW50OiBBY2NvdW50IE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbi5hY2NvdW50LW1lbnUsXG4uYWZmaWxpYXRlLW1lbnUge1xuICBAaW5jbHVkZSBjYXJkO1xuXG4gIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbiAgYS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC1saWdodC0yO1xuICB9XG5cbiAgYS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlLFxuICBhLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIsXG4gIGEubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyB7XG4gICAgY29sb3I6ICRsaW5rLWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLWxpZ2h0LTI7XG4gICAgYm9yZGVyLWNvbG9yOiBub25lO1xuICB9XG5cbiAgLmJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbGluay1jb2xvcjtcbiAgICBjb2xvcjogJHRleHQtY29sb3ItbGlnaHQ7XG4gIH1cblxuICBhLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAuYmFkZ2UsXG4gIC5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+IC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogJGxpbmstY29sb3I7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yLWxpZ2h0O1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgMjIuIEZvcmdvdCBQYXNzd29yZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNhcmQ7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgLnJlc2V0LXBhc3N3b3JkX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIDIzLiBTaW5nbGUgVGFzayBWaWV3XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uc2luZ2xlLXRhc2stdmlldyB7XG4gIGJhY2tncm91bmQ6ICNmNGY1ZjcgaW1hZ2UtdXJsKFwiZGVmYXVsdHMvYmctc2hhcGVzLWdyZXkucG5nXCIpIHRvcCBsZWZ0O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC5jb250YWluZXIge1xuICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgLnRoaW5raWZpYy1sb2dvIHtcbiAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnNpbmdsZS10YXNrLXZpZXdfX2NhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQ7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxuXG4gIC5zaW5nbGUtdGFzay12aWV3X190aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42ZW07XG4gIH1cblxuICAuc2luZ2xlLXRhc2stdmlld19fc3VidGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlblxuYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgLnNpbmdsZS10YXNrLXZpZXcgIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQge1xuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuY29sLXByaW50LTEyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuXG5cbiIsCgkJIi8vIEJvdXJib24gNC4yLjZcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsCgkJIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLAoJCSJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsCgkJIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLAoJCSIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLAoJCSIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwKCQkiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwKCQkiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLAoJCSIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLAoJCSJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwKCQkiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLAoJCSJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwKCQkiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwKCQkiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwKCQkiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLAoJCSJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsCgkJIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsCgkJIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsCgkJIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwKCQkiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLAoJCSIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsCgkJIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLAoJCSIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLAoJCSJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwKCQkiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLAoJCSJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsCgkJIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLAoJCSIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsCgkJIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsCgkJIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLAoJCSJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwKCQkiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwKCQkiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLAoJCSJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwKCQkiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLAoJCSJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLAoJCSIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwKCQkiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLAoJCSIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLAoJCSJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLAoJCSJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLAoJCSIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBTUEsSUFBSSxBQUFBLENBQUMsV0FBVyxDQUFDLFVBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSyxDQUFFLEFBQUQsSUFBSSxBQUFBLENBQUMsTUFBTSxDQUFDLENBQUUsQ0FBRSxBQUFELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQUFBQSxDQUFDLE9BQU8sQ0FBQyxLQUFNLENBQUUsQUFBRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEFBQUEsQ0FBQyxPQUFPLENBQUMsWUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFTLENBQUUsQUFBRCxLQUFLLEFBQUEsSUFBSyxFQUFBLEFBQUEsUUFBQyxBQUFBLEVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUUsQ0FBRCxBQUFBLE1BQUMsQUFBQSxFQUFRLFFBQVEsQUFBQSxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUUsQUFBRCxDQUFDLEFBQUEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFZLENBQUUsQUFBRCxDQUFDLEFBQUEsT0FBTyxDQUFDLENBQUMsQUFBQSxNQUFNLEFBQUEsQ0FBQyxPQUFPLENBQUMsQ0FBRSxDQUFFLEFBQUQsSUFBSSxDQUFBLEFBQUEsS0FBQyxBQUFBLENBQU0sQ0FBQyxhQUFhLENBQUMsVUFBVyxDQUFFLEFBQUQsQ0FBQyxDQUFDLE1BQU0sQUFBQSxDQUFDLFdBQVcsQ0FBQyxHQUFJLENBQUUsQUFBRCxHQUFHLEFBQUEsQ0FBQyxVQUFVLENBQUMsTUFBTyxDQUFFLEFBQUQsRUFBRSxBQUFBLENBQUMsU0FBUyxDQUFDLEdBQUksQ0FBQyxNQUFNLENBQUMsT0FBUSxDQUFFLEFBQUQsSUFBSSxBQUFBLENBQUMsVUFBVSxDQUFDLElBQUssQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFFLEFBQUQsS0FBSyxBQUFBLENBQUMsU0FBUyxDQUFDLEdBQUksQ0FBRSxBQUFELEdBQUcsQ0FBQyxHQUFHLEFBQUEsQ0FBQyxTQUFTLENBQUMsR0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFFLENBQUMsUUFBUSxDQUFDLFFBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUyxDQUFFLEFBQUQsR0FBRyxBQUFBLENBQUMsR0FBRyxDQUFDLEtBQU0sQ0FBRSxBQUFELEdBQUcsQUFBQSxDQUFDLE1BQU0sQ0FBQyxNQUFPLENBQUUsQUFBRCxHQUFHLEFBQUEsQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFFLEFBQUQsR0FBRyxBQUFBLElBQUssQ0FBQSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFFLEFBQUQsTUFBTSxBQUFBLENBQUMs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QUFDLENBbHhGeEIsYUFBYSxDQUFFLEdBQUksQ0FDbkIsVUFBVSxDQUFFLGlCQUFrQixDQUM5QixRQUFRLENBQUUsUUFBUyxDQUNuQixVQUFVLENBQUUsT0FBUSxDQWl4RnBCLE9BQU8sQ0FBRSxJQUFLLENBS2YsQUFQRCx5QkFBeUIsQWdFaDFGdEIsT0FBTyxBQUFDLENBQ1AsS0FBSyxDQUFFLElBQUssQ0FDWixPQUFPLENBQUUsRUFBRyxDQUNaLE9BQU8sQ0FBRSxLQUFNLENBQ2hCLEFoRTQwRkgseUJBQXlCLENBSXZCLHNCQUFzQixBQUFDLENBQ3JCLFVBQVUsQ0FBRSxDQUFFLENBQ2YsQUFPSCxpQkFBaUIsQUFBQyxDQUNoQixVQUFVLENBQUUsT0FBTyxDQUFDLHFHQUFTLENBQWdDLEdBQUcsQ0FBQyxJQUFJLENBQ3JFLFVBQVUsQ0FBRSxJQUFLLENBeUJsQixBQTNCRCxpQkFBaUIsQ0FJZixVQUFVLEFBQUMsQ0FDVixXQUFXLENBQUUsSUFBSyxDQUNsQixhQUFhLENBQUUsSUFBSyxDQU1wQixBQVpILGlCQUFpQixDQUlmLFVBQVUsQ0FJUixlQUFlLEFBQUMsQ0FDZCxLQUFLLENBQUUsS0FBTSxDQUNiLGFBQWEsQ0FBRSxJQUFLLENBQ3JCLEFBWEwsaUJBQWlCLENBY2YsdUJBQXVCLEFBQUMsQ0E3eUZ4QixhQUFhLENBQUUsR0FBSSxDQUNuQixVQUFVLENBQUUsaUJBQWtCLENBQzlCLFFBQVEsQ0FBRSxRQUFTLENBQ25CLFVBQVUsQ0FBRSxPQUFRLENBNHlGbEIsT0FBTyxDQUFFLElBQUssQ0FDZixBQWpCSCxpQkFBaUIsQ0FjZix1QkFBdUIsQWdFMzJGdEIsT0FBTyxBQUFDLENBQ1AsS0FBSyxDQUFFLElBQUssQ0FDWixPQUFPLENBQUUsRUFBRyxDQUNaLE9BQU8sQ0FBRSxLQUFNLENBQ2hCLEFoRXkxRkgsaUJBQWlCLENBbUJmLHdCQUF3QixBQUFDLENBQ3ZCLFdBQVcsQ0FBRSxJQUFLLENBQ2xCLGFBQWEsQ0FBRSxLQUFNLENBQ3RCLEFBdEJILGlCQUFpQixDQXdCZiwyQkFBMkIsQUFBQyxDQUMxQixhQUFhLENBQUUsS0FBTSxDQUN0QixBQUdILE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFHL0IsaUJBQWlCLENBQ2YsVUFBVSxBQUFDLENBQ1QsV0FBVyxDQUFFLElBQUssQ0FDbkIsQ0FJTCxNQUFNLENBQU4sS0FBSyxDQUNILENBQUMsQ0FBQSxBQUFBLElBQUMsQUFBQSxDQUFLLE1BQU0sQUFBQyxDQUNaLE9BQU8sQ0FBRSxlQUFnQixDQUMxQixBQUVELGFBQWEsQUFBQyxDQUNaLEtBQUssQ0FBRSxlQUFnQixDQUN4QiIsCgkibmFtZXMiOiBbXQp9 */