/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */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,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{margin:0;padding:0;text-decoration:none;outline:0;outline:0}*,:after,:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}html{height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body,html{height:100%;margin:0;padding:0}body{font-family:Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;color:#000;text-align:left;-webkit-text-size-adjust:100%}h1,h2,h3,h4,h5,h6{margin:0!important}ol,ul{list-style-type:none}ol li,ul li{vertical-align:top!important}a,a img{border:0;text-decoration:none;cursor:pointer}a{color:inherit}a:focus{outline:0}a:hover{color:inherit;text-decoration:underline}img{vertical-align:middle;border:0;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}::-moz-selection{color:#fff;background:#6891b9!important}::-webkit-selection{color:#fff;background:#6891b9!important}::selection{color:#fff;background:#6891b9!important}video{max-width:100%;height:auto}embed,iframe,object{max-width:100%;z-index:999}select{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}sub,sup{vertical-align:baseline;position:relative;top:-.5em;font-size:65%}sub{top:.5em}.min-height{height:100px;min-height:100px;height:auto!important;padding-bottom:10px}* html .min-height{height:100px}html>body .min-height{height:auto}.overflow-hidden{overflow:hidden;zoom:1;display:block}.topbar-container{height:36px;background:#393939}.topbar-container .topbar{height:36px}.topbar-container .topbar__message{width:41.22137%;float:left}.topbar-container .topbar__message__promo{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:13px;line-height:36px;color:#fff}.topbar-container .topbar__sign-in-cart{width:24.42748%;float:left;margin-left:33.58779%}.topbar-container .topbar__sign-in-cart__nav{position:absolute;top:50%;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);right:0;height:21px}.topbar-container .topbar__sign-in-cart__navItem{float:left;display:inline;height:21px;font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:12px;line-height:21px;color:#fff;text-transform:uppercase;border-right:1px solid #fff;padding-left:16px;padding-right:16px}.topbar-container .topbar__sign-in-cart__navItem:last-of-type{border:0;padding-right:2px}.nav-container{height:130px}.nav-container .nav{position:relative;height:130px}.nav-container .nav__logo{width:41.22137%;float:left;height:100%}.nav-container .nav__logo img{position:absolute;top:50%;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.nav-container .nav__links{width:58.01527%;float:left;height:100%}.nav-container .nav__links ul{position:absolute;height:96px;right:0}.nav-container .nav__links ul li{float:left;display:inline;height:96px;padding-right:36px}.nav-container .nav__links ul li a{font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:13px;line-height:130px;color:#4f4f4f;letter-spacing:1.3px;text-transform:uppercase}.nav-container .nav__links ul li:last-of-type{padding-right:0}.full-width-container{position:relative;display:block;clear:both;width:100%;float:left;margin-left:0;margin-right:0}.content-container,.content-container .content,.content-width{position:relative;display:block;width:974px;max-width:974px;margin-left:auto;margin-right:auto}.content-container .content:after,.content-container:after,.content-width:after{content:" ";display:block;clear:both}.hero-container{overflow:hidden}.hero-container--large{height:446px}.hero-container--small{height:350px}.hero-container .hero-copy{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center}.hero-container .hero-copy__title{font-family:Roboto,sans-serif;font-weight:900;font-style:normal;font-size:46px;line-height:normal;color:#fff;letter-spacing:3.68px;text-transform:uppercase}.hero-container .hero-copy__subtitle{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:23px;line-height:normal;color:#fff}.hero-container .hero-copy__button{position:relative;display:block;width:164px;height:50px;margin:40px auto 0 auto;border:1px solid #fff;background:rgba(26,26,26,0);color:#fff;transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out;background:rgba(0,0,0,.5)}.hero-container .hero-copy__button:hover{transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.hero-container .hero-copy__button:hover{border:1px solid #fff;background:#fff;color:#000;transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.hero-container .hero-copy__button:hover:hover{transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.hero-container .hero-copy__button span{font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:13px;line-height:normal;text-transform:uppercase;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.content-container{min-height:100%;padding:0;clear:both}.content-container .content{padding-bottom:616px;text-align:left}.content-container .copy-container{position:relative;text-align:center}.content-container .copy-container .copy{clear:both;width:100%;float:left;margin-left:0;margin-right:0;padding-left:45px;padding-right:45px}.content-container .copy-container .copy__title{font-family:Roboto,sans-serif;font-weight:900;font-style:normal;font-size:30px;line-height:normal;color:#4f4f4f;letter-spacing:3px;text-transform:uppercase}.content-container .copy-container .copy__title--normal{text-transform:inherit}.content-container .copy-container .copy__subtitle{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:20px;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase}.content-container .copy-container .copy__intro{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f;margin-bottom:36px}.content-container .copy-container .copy__link{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:13px;line-height:normal;color:#4f4f4f;letter-spacing:1.56px;text-transform:uppercase;text-decoration:underline}.content-container .copy-container .copy__link:hover{text-decoration:none}.hr{border:0}.hr--large{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:1px}.hr--small{max-width:40px;margin-left:auto;margin-right:auto;height:2px}.hr--small:after{content:" ";display:block;clear:both}.hr--emperor{background:#4f4f4f}.hr--alto{background:#dfdfdf}.hr--pickled-bluewood{background:#2e394f}.hr--white{background:#fff}.u-margin-10{margin-top:10px;margin-bottom:10px}.hr--small,.u-margin-20{margin-top:20px;margin-bottom:20px}.u-margin-30{margin-top:30px;margin-bottom:30px}.u-margin-40{margin-top:40px;margin-bottom:40px}.u-margin-50{margin-top:50px;margin-bottom:50px}.u-margin-60{margin-top:60px;margin-bottom:60px}.u-margin-70{margin-top:70px;margin-bottom:70px}.u-margin-80{margin-top:80px;margin-bottom:80px}.u-margin-90{margin-top:90px;margin-bottom:90px}.u-margin-100{margin-top:100px;margin-bottom:100px}.newsletter-page .content .newsletter-search-container,.u-padding-10{padding-top:10px;padding-bottom:10px}.footer-container .info-container .info__copyright,.u-padding-20{padding-top:20px;padding-bottom:20px}.u-padding-30{padding-top:30px;padding-bottom:30px}.home-page .content .staff-favorites .wine,.our-shop-page .content .results,.u-padding-40{padding-top:40px;padding-bottom:40px}.home-page .content .icons,.home-page .content .mwc-wine-relief,.home-page .content .our-services,.home-page .content .staff-favorites,.home-page .content .upcoming-events,.u-padding-50{padding-top:50px;padding-bottom:50px}.u-padding-60{padding-top:60px;padding-bottom:60px}.newsletter-page .content .intro,.services-article .intro,.u-padding-70{padding-top:70px;padding-bottom:70px}.u-padding-80{padding-top:80px;padding-bottom:80px}.u-padding-90{padding-top:90px;padding-bottom:90px}.u-padding-100{padding-top:100px;padding-bottom:100px}.wine-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.wine-container:after,.wine-container:before{content:"";display:table}.wine-container:after{clear:both}.wine-container .wine a{text-decoration:none}.wine-container .wine a:hover .wine__title{text-decoration:underline}.wine-container .wine__image{margin-bottom:16px}.wine-container .wine__title{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f}.wine-container .wine__subtitle{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f}.wine-container .wine__subtitle b{font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:15px;line-height:24px;color:#2e394f}.wine-container .wine__copy{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:normal;color:#4f4f4f}.services-article .columns-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0;display:flex;padding-bottom:100px;overflow:hidden}.services-article .columns-container .main-content{width:41.22137%;float:left}.services-article .columns-container .main-content h1{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:20px;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:20px}.services-article .columns-container .main-content p{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f;margin-bottom:40px}.services-article .columns-container .main-content p a{text-decoration:underline}.services-article .columns-container .main-content p a:hover{text-decoration:none}.services-article .columns-container aside{width:58.01527%;float:left;margin-left:8.39695%}.services-article .columns-container aside .gallery-container img{margin-top:40px}.sign-up-container{position:relative}.sign-up-container .sign-up{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.sign-up-container .sign-up--large{width:484px;height:110px}.sign-up-container .sign-up--large .sign-up__email input{border:1px solid #fff}.sign-up-container .sign-up--small{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:50px}.sign-up-container .sign-up--small .sign-up__email input{border-top:1px solid #dfdfdf;border-right:0;border-bottom:1px solid #dfdfdf;border-left:1px solid #dfdfdf}.sign-up-container .sign-up__title{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:20px;color:#fff;text-transform:uppercase;text-align:center;margin-bottom:28px!important}.sign-up-container .sign-up ul{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:50px}.sign-up-container .sign-up__email{width:66.41221%;float:left;height:50px}.sign-up-container .sign-up__email input{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:inherit;font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:normal;color:#4f4f4f;text-indent:20px}.sign-up-container .sign-up__submit{width:32.82443%;float:left;height:50px}.sign-up-container .sign-up__submit a{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:inherit;font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:50px;color:#fff;text-transform:uppercase;text-align:center;border:1px solid #8baac9;background:#8baac9;color:#fff;transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.sign-up-container .sign-up__submit a:hover{transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.sign-up-container .sign-up__submit a:hover{border:1px solid #41506f;background:#41506f;color:#fff;transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out;text-decoration:none}.sign-up-container .sign-up__submit a:hover:hover{transition:border .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out}.footer-container{position:absolute;min-height:616px;margin-top:-616px;clear:both}.footer-container .sign-up-container{height:250px;background:url(../images/global/footer-sign-up-container.jpg) center center no-repeat;-webkit-background-size:cover;background-size:cover;overflow:hidden}.footer-container .info-container{height:366px}.footer-container .info-container .info{height:310px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.footer-container .info-container .info__columns{height:280px;border-bottom:1px solid #dfdfdf}.footer-container .info-container .info__column{width:24.42748%;float:left}.footer-container .info-container .info__column:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.footer-container .info-container .info__column:nth-child(4n+2){margin-left:25.19084%;margin-right:-100%;clear:none}.footer-container .info-container .info__column:nth-child(4n+3){margin-left:50.38168%;margin-right:-100%;clear:none}.footer-container .info-container .info__column:nth-child(4n+4){margin-left:75.57252%;margin-right:-100%;clear:none}.footer-container .info-container .info__column__title{font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:normal;color:#4f4f4f;text-transform:uppercase;padding-bottom:8px;border-bottom:1px solid #dfdfdf}.footer-container .info-container .info__column__ul{padding-top:20px}.footer-container .info-container .info__column__li--subtitle{font-family:Roboto,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:normal;color:#4f4f4f}.footer-container .info-container .info__column__li{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:20px;color:#4f4f4f}.footer-container .info-container .info__column__li a[href^=mailto]{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;color:#2e394f}.footer-container .info-container .info__column__ul--social{position:relative;padding-top:20px}.footer-container .info-container .info__column__li--socialLink{float:left;display:inline;margin-right:25px}.footer-container .info-container .info__column__li--socialLink i{font-family:fontello;font-size:24px;line-height:normal;color:#2e394f;transition:color .25s ease-in-out}.footer-container .info-container .info__column__li--socialLink i:before{margin-left:0}.footer-container .info-container .info__column__li--socialLink i:hover{color:#6891b9;transition:color .25s ease-in-out}.footer-container .info-container .info__copyright p{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:normal;color:#4f4f4f}.home-page .hero-container{background:url(../images/homepage/hero.jpg) center bottom no-repeat;-webkit-background-size:cover;background-size:cover}.home-page .content{text-align:center}.home-page .content .image{width:49.61832%;float:left}.home-page .content .mwc-wine-relief,.home-page .content .our-services,.home-page .content .upcoming-events{clear:both;width:100%;float:left;margin-left:0;margin-right:0;display:flex}.home-page .content .mwc-wine-relief:after,.home-page .content .mwc-wine-relief:before,.home-page .content .our-services:after,.home-page .content .our-services:before,.home-page .content .upcoming-events:after,.home-page .content .upcoming-events:before{content:"";display:table}.home-page .content .mwc-wine-relief:after,.home-page .content .our-services:after,.home-page .content .upcoming-events:after{clear:both}.home-page .content .mwc-wine-relief .copy-container,.home-page .content .our-services .copy-container,.home-page .content .upcoming-events .copy-container{width:49.61832%;float:left}.home-page .content .mwc-wine-relief .copy-container .copy,.home-page .content .our-services .copy-container .copy,.home-page .content .upcoming-events .copy-container .copy{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.home-page .content .icons{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.home-page .content .icons:after,.home-page .content .icons:before{content:"";display:table}.home-page .content .icons:after{clear:both}.home-page .content .icons__icon{width:24.42748%;float:left}.home-page .content .icons__icon:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.home-page .content .icons__icon:nth-child(4n+2){margin-left:25.19084%;margin-right:-100%;clear:none}.home-page .content .icons__icon:nth-child(4n+3){margin-left:50.38168%;margin-right:-100%;clear:none}.home-page .content .icons__icon:nth-child(4n+4){margin-left:75.57252%;margin-right:-100%;clear:none}.home-page .content .icons__icon a{text-decoration:none}.home-page .content .icons__icon a:hover .icon__title{text-decoration:underline}.home-page .content .icons__icon .icon__symbol{margin-bottom:24px}.home-page .content .icons__icon .icon__title{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:normal;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:24px}.home-page .content .icons__icon .icon__copy{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f}.home-page .content .staff-favorites{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.home-page .content .staff-favorites:after,.home-page .content .staff-favorites:before{content:"";display:table}.home-page .content .staff-favorites:after{clear:both}.home-page .content .staff-favorites .copy-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.home-page .content .staff-favorites .wine{width:24.42748%;float:left}.our-shop-page .content .results{clear:both;width:100%;float:left;margin-left:0;margin-right:0;display:flex;overflow:hidden}.our-shop-page .content .results:after,.our-shop-page .content .results:before{content:"";display:table}.our-shop-page .content .results:after{clear:both}.our-shop-page .content .results-browse{width:20.22901%;float:left;border-right:1px solid #dfdfdf}.our-shop-page .content .results-wines{width:74.80916%;float:left;margin-left:4.19847%}.storage-services-page .hero-container{background:url(../images/storage-services/hero.jpg) center bottom no-repeat;-webkit-background-size:cover;background-size:cover}.wine-services-page .hero-container{background:url(../images/wine-services/hero.jpg) center bottom no-repeat;-webkit-background-size:cover;background-size:cover}.newsletter-page .hero-container{background:url(../images/newsletter/hero.jpg) center bottom no-repeat;-webkit-background-size:cover;background-size:cover}.newsletter-page .content .newsletter-search-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.newsletter-page .content .newsletter-search-container:after,.newsletter-page .content .newsletter-search-container:before{content:"";display:table}.newsletter-page .content .newsletter-search-container:after{clear:both}.newsletter-page .content .newsletters-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0;padding-bottom:100px}.newsletter-page .content .newsletters-container:after,.newsletter-page .content .newsletters-container:before{content:"";display:table}.newsletter-page .content .newsletters-container:after{clear:both}.newsletter-page .content .newsletters-container .newsletter{width:32.82443%;float:left;padding-bottom:40px}.newsletter-page .content .newsletters-container .newsletter:nth-child(3n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.newsletter-page .content .newsletters-container .newsletter:nth-child(3n+2){margin-left:33.58779%;margin-right:-100%;clear:none}.newsletter-page .content .newsletters-container .newsletter:nth-child(3n+3){margin-left:67.17557%;margin-right:-100%;clear:none}.newsletter-page .content .newsletters-container .newsletter a{text-decoration:none}.newsletter-page .content .newsletters-container .newsletter a:hover .newsletter__link{text-decoration:underline}.newsletter-page .content .newsletters-container .newsletter__image{clear:both;width:100%;float:left;margin-left:0;margin-right:0;margin-bottom:20px}.newsletter-page .content .newsletters-container .newsletter__image:after,.newsletter-page .content .newsletters-container .newsletter__image:before{content:"";display:table}.newsletter-page .content .newsletters-container .newsletter__image:after{clear:both}.newsletter-page .content .newsletters-container .newsletter__image img{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.newsletter-page .content .newsletters-container .newsletter__title{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:normal;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase}.newsletter-page .content .newsletters-container .newsletter__date{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:normal;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase}.newsletter-page .content .newsletters-container .newsletter__copy{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f}.newsletter-page .content .newsletters-container .newsletter__link{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f}.newsletter-page .content .newsletters-container .newsletter__link:hover{text-decoration:none}.newsletter-detail-page .content .columns-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0;display:flex;padding-top:30px;padding-bottom:100px;overflow:hidden}.newsletter-detail-page .content .columns-container:after,.newsletter-detail-page .content .columns-container:before{content:"";display:table}.newsletter-detail-page .content .columns-container:after{clear:both}.newsletter-detail-page .content .columns-container .main-content{width:58.01527%;float:left}.newsletter-detail-page .content .columns-container .main-content h1{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:20px;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:20px}.newsletter-detail-page .content .columns-container .main-content p{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:15px;line-height:24px;color:#4f4f4f;margin-bottom:40px}.newsletter-detail-page .content .columns-container .main-content p a{text-decoration:underline}.newsletter-detail-page .content .columns-container .main-content p a:hover{text-decoration:none}.newsletter-detail-page .content .columns-container aside{width:32.82443%;float:left;margin-left:8.39695%;border-left:1px solid #dfdfdf;text-align:center}.newsletter-detail-page .content .columns-container aside .aside-margin,.newsletter-detail-page .content .columns-container aside .form-container,.newsletter-detail-page .content .columns-container aside .gallery-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0;padding-left:20px;padding-right:20px}.newsletter-detail-page .content .columns-container aside .intro__title{font-family:Roboto,sans-serif;font-weight:500;font-style:normal;font-size:15px;line-height:20px;color:#4f4f4f;letter-spacing:1.8px;text-transform:uppercase}.newsletter-detail-page .content .columns-container aside .form-container .sign-up-container{clear:both;width:100%;float:left;margin-left:0;margin-right:0;height:50px;overflow:hidden}.newsletter-detail-page .content .columns-container aside .gallery-container{margin-top:60px}.newsletter-detail-page .content .columns-container aside .wine-container .wine{padding-bottom:40px}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInN0eWxlcy5jc3MiLCJfY29yZS5zY3NzIiwiX3ZhcmlhYmxlc19taXhpbnNfZnVuY3Rpb25zLnNjc3MiLCJfaGVhZGVyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19yZW0uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIl91dGlsaXRpZXMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2NsZWFyZml4LnNjc3MiLCJfd2luZS5zY3NzIiwiX3NlcnZpY2VzLWFydGljbGUuc2NzcyIsIl9zaWduLXVwLnNjc3MiLCJfZm9vdGVyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2lzb2xhdGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ2FsbGVyeS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2VuZC5zY3NzIiwiX2hvbWUtcGFnZS5zY3NzIiwiX291ci1zaG9wLXBhZ2Uuc2NzcyIsIl9zdG9yYWdlLXNlcnZpY2VzLXBhZ2Uuc2NzcyIsIl93aW5lLXNlcnZpY2VzLXBhZ2Uuc2NzcyIsIl9uZXdzbGV0dGVyLXBhZ2Uuc2NzcyIsIl9uZXdzbGV0dGVyLWRldGFpbC1wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEVBT0EsS0FDRSxZQUFhLFdBQ2IscUJBQXNCLEtBQ3RCLHlCQUEwQixLQU81QixLQUNFLE9BQVEsRUFZVixRQUNBLE1BQ0EsUUFDQSxXQUNBLE9BQ0EsT0FDQSxPQUNBLEtBQ0EsS0FDQSxJQUNBLFFBQ0EsUUFDRSxRQUFTLE1BT1gsTUFDQSxPQUNBLFNBQ0EsTUFDRSxRQUFTLGFBT1gsc0JBQ0UsUUFBUyxLQUNULE9BQVEsRUFPVixTQUNFLGVBQWdCLFNDRmxCLFNEVUEsU0FFRSxRQUFTLEtBV1gsRUFDRSxpQkFBa0IsWUFDbEIsNkJBQThCLFFBUWhDLFNBQ0EsUUFDRSxjQUFlLEVBV2pCLFlBQ0UsY0FBZSxLQUNmLGdCQUFpQixVQUNqQixnQkFBaUIsVUFBQSxPQU9uQixFQUNBLE9BQ0UsWUFBYSxRQU9mLEVBQ0EsT0FDRSxZQUFhLE9BT2YsSUFDRSxXQUFZLE9BUWQsR0FDRSxVQUFXLElBQ1gsT0FBUSxNQUFBLEVBT1YsS0FDRSxpQkFBa0IsS0FDbEIsTUFBTyxLQU9ULE1BQ0UsVUFBVyxJQVFiLElBQ0EsSUFDRSxVQUFXLElBQ1gsWUFBYSxFQUNiLFNBQVUsU0FDVixlQUFnQixTQUdsQixJQUNFLE9BQVEsT0FHVixJQUNFLElBQUssTUFVUCxJQUNFLGFBQWMsS0FPaEIsZUFDRSxTQUFVLE9BV1osS0FDQSxJQUNBLElBQ0EsS0FDRSxZQUFhLFNBQUEsQ0FBQSxVQUNiLFVBQVcsSUFPYixPQUNFLE9BQVEsSUFBQSxLQVFWLEdBQ0UsV0FBWSxZQUNaLE9BQVEsRUFDUixTQUFVLFFBV1osT0FDQSxNQUNBLE9BQ0EsU0FDRSxLQUFNLFFBQ04sT0FBUSxFQU9WLFNBQ0UsWUFBYSxJQVFmLE9BQ0EsTUFDRSxTQUFVLFFBUVosT0FDQSxPQUNFLGVBQWdCLEtDakNsQixhQUNBLGNEeUNBLE9BQ0EsbUJBR0UsbUJBQW9CLE9DckN0QixnQ0FDQSwrQkFDQSxnQ0QwQ0EseUJBSUUsYUFBYyxLQUNkLFFBQVMsRUN2Q1gsNkJBQ0EsNEJBQ0EsNkJENENBLHNCQUlFLFFBQVMsSUFBQSxPQUFBLFdBT1gsU0FDRSxPQUFRLElBQUEsTUFBQSxPQUNSLE9BQVEsRUFBQSxJQUNSLFFBQVMsTUFBQSxPQUFBLE1BVVgsT0FDRSxXQUFZLFdBQ1osTUFBTyxRQUNQLFFBQVMsTUFDVCxVQUFXLEtBQ1gsUUFBUyxFQUNULFlBQWEsT0FPZixTQUNFLFNBQVUsS0N6Q1osZ0JBQ0EsYURrREUsV0FBWSxXQUNaLFFBQVMsRUMxQ1gseUNBQ0EseUNEa0RFLE9BQVEsS0MzQ1YsY0RvREUsbUJBQW9CLFVBQ3BCLGVBQWdCLEtDNUNsQiw0Q0FDQSx5Q0RvREUsbUJBQW9CLEtBT3RCLDRCQUNFLE1BQU8sUUFDUCxRQUFTLElBUVgsNkJBQ0UsbUJBQW9CLE9BQ3BCLEtBQU0sUUVqYVIsRUM4SEEsT0FEcUIsRUFFckIsUUFGb0MsRUQzSGhDLGdCQUFpQixLQUNqQixRQUFTLEVBQ1QsUUFBUyxFQUdiLEVBQWEsT0FBVixRQ29HSCxtQkRuR3dCLFFDb0d4QixnQkRwR3dCLFFDcUd4QixXRHJHd0IsUUFHeEIsS0FDSSxPQUFRLEtDK0ZaLG1CRDlGd0IsV0MrRnhCLGdCRC9Gd0IsV0NnR3hCLFdEaEd3QixXQUNwQiw0QkFBNkIsWUFDN0IseUJBQTBCLEtBQzFCLHFCQUFzQixLQUdwQixLQUFOLEtBQ0ksT0FBUSxLQzBHWixPQURxQixFQUVyQixRQUZvQyxFRHJHcEMsS0NRSSxZQUxPLFNBQVMsQ0FBRSxLQUFLLENBQUUsV0FNekIsWUFrQnlCLElBakJ6QixXQWlCaUMsT0R6QmpDLE1DWkksS0RhSixXQUFZLEtBQ1oseUJBQTBCLEtBSTlCLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUNoQixPQUFRLFlBR1osR0FBSSxHQUNBLGdCQUFpQixLQUdyQixNQUFPLE1BQ0gsZUFBZ0IsY0FHcEIsRUFBRyxNQUNDLE9BQVEsRUFDUixnQkFBaUIsS0FDakIsT0FBUSxRQUdaLEVBQ0ksTUFBTyxRQURYLFFBSVEsUUFBUyxFQUpqQixRQVFRLE1BQU8sUUFDUCxnQkFBaUIsVUFNekIsSUFDSSxlQUFnQixPQUNoQixPQUFRLEVBQ1IsVUFBVyxLQUNYLE9BQVEsS0FDUix1QkFBd0IsUUFRcEIsaUJBQ0ksTUFNTyxLQUxQLFdDMURBLGtCRHdESixvQkFDSSxNQU1PLEtBTFAsV0MxREEsa0JEd0RKLFlBQ0ksTUFNTyxLQUxQLFdDMURBLGtCRG1FWixNQUNJLFVBQVcsS0FDWCxPQUFRLEtBSVosTUFEQSxPQUVBLE9BQ0ksVUFBVyxLQUNYLFFBQVMsSUFLYixPQUNJLG1CQUFvQixFQUNwQixzQkFBdUIsRUFDdkIsY0FBZSxFQUlkLElBQUwsSUFDSSxlQUFnQixTQUNoQixTQUFVLFNBQ1YsSUFBSyxNQUNMLFVBQVcsSUFHZixJQUNJLElBQUssS0FNVCxZQUNJLE9BSFMsTUFJVCxXQUpTLE1BS1QsT0FBUSxlQUNSLGVBQWdCLEtBR3BCLG1CQUNJLE9BVlMsTUFhYixzQkFDSSxPQUFRLEtBR1osaUJBQ0ksU0FBVSxPQUNWLEtBQU0sRUFDTixRQUFTLE1FM0liLGtCQUNJLE9BSlksS0FLWixXRFdTLFFDYmIsMEJBS1EsT0FSUSxLQUdoQixtQ0NnQkksTUN3SVUsVUR4SVYsTUVBd0QsS0hoQjVELDBDRDZCSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBMkN1QixJQTFDdkIsV0EwQzRCLE9BdEM1QixVQ3ZCZ0MsS0R3QmhDLFlDdkNZLEtEd0NaLE1BM0JJLEtDVlIsd0NDZ0JJLE1Dd0lVLFVEeElWLE1FQXdELEtGQXhELFlDd0lVLFVGeEpkLDZDRHFJSSxTQUFVLFNBR04sSUFMTSxJQU1OLGtCQUFvQixrQkFDcEIsY0FBZ0Isa0JBQ2hCLFVBQVksa0JDckhKLE1BQU8sRUFDUCxPQUFRLEtBdkJ4QixpRERxSEEsTUFEc0IsS0FFdEIsUUFBUyxPQzFGTyxPQUFRLEtEQ3BCLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtRHVCLElBbER2QixXQWtENEIsT0E5QzVCLFVDTGdDLEtETWhDLFlDTjhDLEtETzlDLE1BM0JJLEtDcUJRLGVBQWdCLFVBQ2hCLGFBQWMsSUFBSSxNRHRCMUIsS0N1QlEsYUFBYyxLQUNkLGNBQWUsS0FsQy9CLDhEQXFDb0IsT0FBUSxFQUNSLGNBQWUsSUFPbkMsZUFDQSxPQWhEYSxNQStDYixvQkFJUSxTQUFVLFNBQ1YsT0FwREssTUErQ2IsMEJDN0JJLE1Dd0lVLFVEeElWLE1FQXdELEtIc0NoRCxPQUFRLEtBVHBCLDhCRHdGSSxTQUFVLFNBR04sSUFMTSxJQU1OLGtCQUFvQixrQkFDcEIsY0FBZ0Isa0JBQ2hCLFVBQVksa0JDOUZwQiwyQkM3QkksTUN3SVUsVUR4SVYsTUVBd0QsS0grQ2hELE9BQVEsS0FsQnBCLDhCQXFCZ0IsU0FBVSxTQUNWLE9BQVEsS0FDUixNQUFPLEVBdkJ2QixpQ0R3RUEsTUFEc0IsS0FFdEIsUUFBUyxPQzlDVyxPQUFRLEtBQ1IsY0FBZSxLQTVCbkMsbUNEaEJJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtRHVCLElBbER2QixXQWtENEIsT0E5QzVCLFVDMEN3QyxLRHpDeEMsWUN0Q1MsTUR1Q1QsTUF2Qk0sUUE2Qk4sZUFBa0IsTUNvQ0UsZUFBZ0IsVUFsQ3hDLDhDQXNDd0IsY0FBZSxFSXJGdkMsc0JMaUhBLFNBRHdCLFNBRXhCLFFBQVMsTUVoR0wsTUlac0IsS0pZdEIsTUN5SDhELEtEekg5RCxNRUF3RCxLRkF4RCxZQytFb0IsRUQvRXBCLGFDa0ZtQixFRS9GdkIsbUJBQUEsNEJBQUEsZUw0R0EsU0FEd0IsU0FFeEIsUUFBUyxNSzNHTCxNTERjLE1FWWQsVUZaYyxNRVlkLFlLcURnQyxLTHJEaEMsYUtxRCtELEtGbEVuRSxrQ0FBQSx5QkFBQSxxQkdNTSxRQUFTLElBQ1QsUUFBUyxNQUNULE1BQU8sS0hBYixnQkFDSSxTQUFVLE9BRGQsdUJBSVEsT0FBUSxNQUpoQix1QkFRUSxPQUFRLE1BUmhCLDJCTDBISSxTQUFVLFNBaUJOLElBbkJNLElBb0JOLEtBcEJNLElBcUJOLGtCQUFtQixxQkFDbkIsY0FBZSxxQkFDZixVQUFXLHFCS2xJWCxXQUFZLE9BYnBCLGtDTGtCSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBMkR1QixJQTFEdkIsV0EwRDRCLE9BdEQ1QixVS1A0QixLTFE1QixZQUZnRCxPQUdoRCxNQTNCSSxLQWlDSixlQUFrQixPS2JWLGVBQWdCLFVBbkI1QixxQ0xrQkksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVUtBNEIsS0xDNUIsWUFGZ0QsT0FHaEQsTUEzQkksS0tDUixtQ0xvR0EsU0FEd0IsU0FFeEIsUUFBUyxNS3hFRyxNQUFPLE1BQ1AsT0FBUSxLQUNSLE9BQVEsS0FBQSxLQUFBLEVBQUEsS0x5SnBCLE9BQVEsSUFBSSxNQUFNLEtBQ2xCLFdBQVksaUJBQ1osTUEzTFEsS0E0TFIsV0FBWSxPQUFBLEtBQUEsV0FBQSxDQUFBLGlCQUFBLEtBQUEsV0FBQSxDQUFBLE1BQUEsS0FBQSxZSzFKQSxXQUFZLGVBakN4Qix5Q0w4TEksV0FBWSxPQUFBLEtBQUEsV0FBQSxDQUFBLGlCQUFBLEtBQUEsV0FBQSxDQUFBLE1BQUEsS0FBQSxZSzlMaEIseUNMd0xBLE9BQVEsSUFBSSxNQUFNLEtBQ2xCLFdBQVksS0FDWixNQTFMUSxLQTJMUixXQUFZLE9BQUEsS0FBQSxXQUFBLENBQUEsaUJBQUEsS0FBQSxXQUFBLENBQUEsTUFBQSxLQUFBLFlLM0xaLCtDTDhMSSxXQUFZLE9BQUEsS0FBQSxXQUFBLENBQUEsaUJBQUEsS0FBQSxXQUFBLENBQUEsTUFBQSxLQUFBLFlLOUxoQix3Q0xrQkksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1EdUIsSUFsRHZCLFdBa0Q0QixPQTlDNUIsVUtpQmdDLEtMaEJoQyxZQUZnRCxPS21CcEMsZUFBZ0IsVUxnRjVCLFNBQVUsU0FpQk4sSUFuQk0sSUFvQk4sS0FwQk0sSUFxQk4sa0JBQW1CLHFCQUNuQixjQUFlLHFCQUNmLFVBQVcscUJLNUZuQixtQkFFSSxXQUFZLEtBQ1osUUFBUyxFQUNULE1BQU8sS0FKWCw0QkFRUSxlTGpFUSxNS2tFUixXQUFZLEtBVHBCLG1DQWNRLFNBQVUsU0FDVixXQUFZLE9BZnBCLHlDSDlDSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVFakJYLGFBQWMsS0FDZCxjQUFlLEtBcEIzQixnRExqQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJEdUIsSUExRHZCLFdBMEQ0QixPQXRENUIsVUttRGdDLEtMbERoQyxZQUZnRCxPQUdoRCxNQXZCTSxRQTZCTixlQUFrQixJSzZDTixlQUFnQixVQTFCaEMsd0RBNkJvQixlQUFnQixRQTdCcEMsbURMakNJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUEyQ3VCLElBMUN2QixXQTBDNEIsT0F0QzVCLFVLOERnQyxLTDdEaEMsWUs2RGdELEtMNURoRCxNQXZCTSxRQTZCTixlQUFrQixNS3dETixlQUFnQixVQXJDaEMsZ0RMakNJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtQ3VCLElBbEN2QixXQWtDNEIsT0E5QjVCLFVLcUVnQyxLTHBFaEMsWUtvRWdELEtMbkVoRCxNQXZCTSxRSzJGTSxjQUFlLEtBM0MvQiwrQ0xqQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVUsyRWdDLEtMMUVoQyxZQUZnRCxPQUdoRCxNQXZCTSxRQTZCTixlQUFrQixPS3FFTixlQUFnQixVQUNoQixnQkFBaUIsVUFuRGpDLHFEQXNEb0IsZ0JBQWlCLEtBU3JDLElBQ0EsT0FBUSxFQURSLFdIN0dJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRUVpQ2YsT0FBUSxJQU5oQixXSDdHSSxVR3VIdUIsS0h2SHZCLFlLcURnQyxLTHJEaEMsYUtxRCtELEtGbUUzRCxPQUFRLElBWGhCLGlCR3BITSxRQUFTLElBQ1QsUUFBUyxNQUNULE1BQU8sS0hrSGIsYUFpQlEsV0xoSUUsUUsrR1YsVUFxQlEsV0xqSUQsUUs0R1Asc0JBeUJRLFdMbElXLFFLeUduQixXQTZCUSxXTGhKQSxLSzBKSixhQUNBLFdBQWEsS0FDYixjQUFnQixLQXpDcEIsV0F1Q0ksYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsYUFDQSxXQUFhLEtBQ2IsY0FBZ0IsS0FGaEIsY0FDQSxXQUFhLE1BQ2IsY0FBZ0IsTUFTaEIsdURBQUEsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsbURBQUEsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsMkNBQUEsaUNBQUEsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsMkJBQUEscUNBQUEsa0NBQUEscUNBQUEscUNBQUEsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsaUNBQUEseUJBQUEsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsY0FDQSxZQUFjLEtBQ2QsZUFBaUIsS0FGakIsZUFDQSxZQUFjLE1BQ2QsZUFBaUIsTUlwTHJCLGdCUG1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVNckd2QixzQkFBQSx1QlQwTEksUUFBUyxHQUNULFFBQVMsTVMzTGIsc0JUK0xJLE1BQU8sS1MvTFgsd0JBT1ksZ0JBQWlCLEtBUDdCLDJDQVlvQixnQkFBaUIsVUFackMsNkJBa0JZLGNBQWUsS0FsQjNCLDZCVGdDSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBbUN1QixJQWxDdkIsV0FrQzRCLE9BOUI1QixVU2Y0QixLVGdCNUIsWVNoQjRDLEtUaUI1QyxNQXZCTSxRU2pCVixnQ1RnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVVNWNEIsS1RXNUIsWVNYNEMsS1RZNUMsTUF2Qk0sUVNqQlYsa0NUZ0NJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtRHVCLElBbER2QixXQWtENEIsT0E5QzVCLFVTTmdDLEtUT2hDLFlTUHlELEtUUXpELE1BakJlLFFTdkJuQiw0QlRnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVVNBNEIsS1RDNUIsWUFGZ0QsT0FHaEQsTUF2Qk0sUVVqQlYscUNSbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRU81RmYsUUFBUyxLQUNULGVBQWdCLE1BQ2hCLFNBQVUsT0FYbEIsbURSbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtNbkI1RCxzRFZnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVVVwQmdDLEtWcUJoQyxZVXJCZ0QsS1ZzQmhELE1BdkJNLFFBNkJOLGVBQWtCLE1VMUJOLGVBQWdCLFVBQ2hCLGNBQWUsS0FyQi9CLHFEVmdDSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBbUN1QixJQWxDdkIsV0FrQzRCLE9BOUI1QixVVVpnQyxLVmFoQyxZVWJnRCxLVmNoRCxNQXZCTSxRVVVNLGNBQWUsS0EzQi9CLHVEQThCb0IsZ0JBQWlCLFVBOUJyQyw2REFpQ3dCLGdCQUFpQixLQWpDekMsMkNSbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtGQXhELFlDd0lVLFNPM0pkLGtFQWtEb0IsV0FBWSxLQ2xEaEMsbUJBQ0ksU0FBVSxTQURkLDRCWHdJSSxTQUFVLFNBaUJOLElBbkJNLElBb0JOLEtBcEJNLElBcUJOLGtCQUFtQixxQkFDbkIsY0FBZSxxQkFDZixVQUFXLHFCVzdKbkIsbUNBUVksTUFBTyxNQUNQLE9BQVEsTUFUcEIseURBY29CLE9BQVEsSUFBSSxNWER4QixLV2JSLG1DVG1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVRaEZYLE9BQVEsS0FyQnBCLHlEQTBCb0IsV0FBWSxJQUFJLE1YTjdCLFFXT2EsYUFBYyxFQUNkLGNBQWUsSUFBSSxNWFJoQyxRV1NhLFlBQWEsSUFBSSxNWFQ5QixRV3BCUCxtQ1hnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVVdENEIsS1hFNUIsWVdGMEMsS1hHMUMsTUEzQkksS1d5QkksZUFBZ0IsVUFDaEIsV0FBWSxPQUNaLGNBQWUsZUF4QzNCLCtCVG1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVReERYLE9BQVEsS0E3Q3BCLG1DVG1CSSxNQ3dJVSxVRHhJVixNRUF3RCxLTytCaEQsT0FBUSxLQWxEcEIseUNUbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRVEvQ1AsT0FBUSxRWHRCcEIsWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVVdrQmdDLEtYakJoQyxZQUZnRCxPQUdoRCxNQXZCTSxRV3dDTSxZQUFhLEtBekQ3QixvQ1RtQkksTUN3SVUsVUR4SVYsTUVBd0QsS080Q2hELE9BQVEsS0EvRHBCLHNDVG1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVRbENQLE9BQVEsUVhuQ3BCLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtRHVCLElBbER2QixXQWtENEIsT0E5QzVCLFVXK0JnQyxLWDlCaEMsWVc4QjhDLEtYN0I5QyxNQTNCSSxLV3lEUSxlQUFnQixVQUNoQixXQUFZLE9YK0g1QixPQUFRLElBQUksTUFBTSxRQUNsQixXQUFZLFFBQ1osTUEzTFEsS0E0TFIsV0FBWSxPQUFBLEtBQUEsV0FBQSxDQUFBLGlCQUFBLEtBQUEsV0FBQSxDQUFBLE1BQUEsS0FBQSxZV3pNWiw0Q1g0TUksV0FBWSxPQUFBLEtBQUEsV0FBQSxDQUFBLGlCQUFBLEtBQUEsV0FBQSxDQUFBLE1BQUEsS0FBQSxZVzVNaEIsNENYc01BLE9BQVEsSUFBSSxNQUFNLFFBQ2xCLFdBQVksUUFDWixNQTNMUSxLQTRMUixXQUFZLE9BQUEsS0FBQSxXQUFBLENBQUEsaUJBQUEsS0FBQSxXQUFBLENBQUEsTUFBQSxLQUFBLFlXN0hRLGdCQUFpQixLQTVFckMsa0RYNE1JLFdBQVksT0FBQSxLQUFBLFdBQUEsQ0FBQSxpQkFBQSxLQUFBLFdBQUEsQ0FBQSxNQUFBLEtBQUEsWVkxTWhCLGtCQUNJLFNBQVUsU0FDVixXWklZLE1ZSFosV1pHWSxPWUZaLE1BQU8sS0FKWCxxQ0FPUSxPQUFRLE1BQ1IsV0FBNkQsbURBQUUsT0FBTyxPQUFPLFVaME9qRix3Qll6TzZCLE1aME83QixnQlkxTzZCLE1BQ3pCLFNBQVUsT0FWbEIsa0NBY1EsT0FBUSxNQWRoQix3Q0FpQlksT0FBUSxNWnFIaEIsU0FBVSxTQWlCTixJQW5CTSxJQW9CTixLQXBCTSxJQXFCTixrQkFBbUIscUJBQ25CLGNBQWUscUJBQ2YsVUFBVyxxQlkzSm5CLGlEQXNCZ0IsT0FBUSxNQUNSLGNBQWUsSUFBSSxNWkw1QixRWWxCUCxnRFZpQkksTUN3SVUsVUR4SVYsTUVBd0QsS1FqQjVELGdFVmlCSSxZV3dEZ0IsRVh4RGhCLGFZb0R5QixNWnBEekIsTUlac0IsS0pZdEIsWWFnQjhCLEVIakNsQyxnRVZpQkksWUN3SVUsVUR4SVYsYVlvRHlCLE1acER6QixNSUpzQixLTWIxQixnRVZpQkksWUN3SVUsVUR4SVYsYVlvRHlCLE1acER6QixNSUpzQixLTWIxQixnRVZpQkksWUN3SVUsVUR4SVYsYVlvRHlCLE1acER6QixNSUpzQixLTWIxQix1RFo4QkksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1EdUIsSUFsRHZCLFdBa0Q0QixPQTlDNUIsVVlKb0MsS1pLcEMsWUFGZ0QsT0FHaEQsTUF2Qk0sUVlrQlUsZUFBZ0IsVUFDaEIsZUFBZ0IsSUFDaEIsY0FBZSxJQUFJLE1aakJoQyxRWWxCUCxvREF1Q29CLFlBQWEsS0F2Q2pDLDhEWjhCSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBbUR1QixJQWxEdkIsV0FrRDRCLE9BOUM1QixVWVFvQyxLWlBwQyxZQUZnRCxPQUdoRCxNQXZCTSxRWWZWLG9EWjhCSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBbUN1QixJQWxDdkIsV0FrQzRCLE9BOUI1QixVWWFvQyxLWlpwQyxZWVlvRCxLWlhwRCxNQXZCTSxRWWZWLG9FWjhCSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBMkN1QixJQTFDdkIsV0EwQzRCLE9ZckJSLE1aaENMLFFZckJuQiw0REEwRG9CLFNBQVUsU0FDVixZQUFhLEtBM0RqQyxnRVpzSEEsTUFEc0IsS0FFdEIsUUFBUyxPWXZEVyxhQUFjLEtBaEVsQyxrRVprR0ksWUFBYSxTQTlEYixVWWdDd0MsS1ovQnhDLFlBRmdELE9BR2hELE1BakJlLFFZZ0RLLFdBQVksTUFBQSxLQUFBLFlBckVwQyx5RUF3RTRCLFlBQWEsRUF4RXpDLHdFQTRFNEIsTVp4RGhCLFFZeURnQixXQUFZLE1BQUEsS0FBQSxZQTdFeEMscURaOEJJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtQ3VCLElBbEN2QixXQWtDNEIsT0E5QjVCLFVZcURvQyxLWnBEcEMsWUFGZ0QsT0FHaEQsTUF2Qk0sUWdCakJWLDJCQUdRLFdBQTJDLGlDQUFFLE9BQU8sT0FBTyxVaEJpUC9ELHdCZ0JoUDZCLE1oQmlQN0IsZ0JnQmpQNkIsTUFKakMsb0JBUVEsV0FBWSxPQVJwQiwyQmRtQkksTUN3SVUsVUR4SVYsTUVBd0QsS1luQjVELHFDQUFBLGtDQUFBLHFDZG1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVhaEZYLFFBQVMsS0FyQnJCLDJDQUFBLDRDQUFBLHdDQUFBLHlDQUFBLDJDQUFBLDRDaEIwTEksUUFBUyxHQUNULFFBQVMsTWdCM0xiLDJDQUFBLHdDQUFBLDJDaEIrTEksTUFBTyxLZ0IvTFgscURBQUEsa0RBQUEscURkbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtZbkI1RCwyREFBQSx3REFBQSwyRGhCd0lJLFNBQVUsU0FpQk4sSUFuQk0sSUFvQk4sS0FwQk0sSUFxQk4sa0JBQW1CLHFCQUNuQixjQUFlLHFCQUNmLFVBQVcscUJnQjdKbkIsMkJkbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRWFyR3ZCLGlDQUFBLGtDaEIwTEksUUFBUyxHQUNULFFBQVMsTWdCM0xiLGlDaEIrTEksTUFBTyxLZ0IvTFgsaUNkbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtZbkI1RCxpRGRtQkksWVd3RGdCLEVYeERoQixhWW9EeUIsTVpwRHpCLE1JWnNCLEtKWXRCLFlhZ0I4QixFQ25DbEMsaURkbUJJLFlDd0lVLFVEeElWLGFZb0R5QixNWnBEekIsTUlKc0IsS1VmMUIsaURkbUJJLFlDd0lVLFVEeElWLGFZb0R5QixNWnBEekIsTUlKc0IsS1VmMUIsaURkbUJJLFlDd0lVLFVEeElWLGFZb0R5QixNWnBEekIsTUlKc0IsS1VmMUIsbUNBMkNvQixnQkFBaUIsS0EzQ3JDLHNEQWdENEIsZ0JBQWlCLFVBaEQ3QywrQ0FzRG9CLGNBQWUsS0F0RG5DLDhDaEJnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVWdCcUJvQyxLaEJwQnBDLFlBRmdELE9BR2hELE1BdkJNLFFBNkJOLGVBQWtCLE1nQmVGLGVBQWdCLFVBQ2hCLGNBQWUsS0E5RG5DLDZDaEJnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVWdCNkJvQyxLaEI1QnBDLFlnQjRCb0QsS2hCM0JwRCxNQXZCTSxRZ0JqQlYscUNkbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRWFyR3ZCLDJDQUFBLDRDaEIwTEksUUFBUyxHQUNULFFBQVMsTWdCM0xiLDJDaEIrTEksTUFBTyxLZ0IvTFgscURkbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRWFyR3ZCLDJDZG1CSSxNQ3dJVSxVRHhJVixNRUF3RCxLYW5CNUQsaUNmbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRWM5RlgsUUFBUyxLQUVULFNBQVUsT0FUdEIsdUNBQUEsd0NqQjBMSSxRQUFTLEdBQ1QsUUFBUyxNaUIzTGIsdUNqQitMSSxNQUFPLEtpQi9MWCx3Q2ZtQkksTUN3SVUsVUR4SVYsTUVBd0QsS2FONUMsYUFBYyxJQUFJLE1qQk8zQixRaUJwQlAsdUNmbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtGQXhELFlDd0lVLFNlM0pkLHVDQUdRLFdBQW1ELHlDQUFFLE9BQU8sT0FBTyxVbEJpUHZFLHdCa0JoUDZCLE1sQmlQN0IsZ0JrQmpQNkIsTUNKakMsb0NBR1EsV0FBZ0Qsc0NBQUUsT0FBTyxPQUFPLFVuQmlQcEUsd0JtQmhQNkIsTW5CaVA3QixnQm1CalA2QixNQ0pqQyxpQ0FHUSxXQUE2QyxtQ0FBRSxPQUFPLE9BQU8sVXBCaVBqRSx3Qm9CaFA2QixNcEJpUDdCLGdCb0JqUDZCLE1BSmpDLHVEbEJtQkksTUlac0IsS0pZdEIsTUN5SDhELEtEekg5RCxNRUF3RCxLRkF4RCxZQytFb0IsRUQvRXBCLGFDa0ZtQixFaUJyR3ZCLDZEQUFBLDhEcEIwTEksUUFBUyxHQUNULFFBQVMsTW9CM0xiLDZEcEIrTEksTUFBTyxLb0IvTFgsaURsQm1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVpQjdFWCxlQUFnQixNQXhCNUIsdURBQUEsd0RwQjBMSSxRQUFTLEdBQ1QsUUFBUyxNb0IzTGIsdURwQitMSSxNQUFPLEtvQi9MWCw2RGxCbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtnQlM1QyxlQUFnQixLQTVCaEMsNkVsQm1CSSxZV3dEZ0IsRVh4RGhCLGFZb0R5QixNWnBEekIsTUlac0IsS0pZdEIsWWFnQjhCLEVLbkNsQyw2RWxCbUJJLFlDd0lVLFVEeElWLGFZb0R5QixNWnBEekIsTUlKc0IsS2NmMUIsNkVsQm1CSSxZQ3dJVSxVRHhJVixhWW9EeUIsTVpwRHpCLE1JSnNCLEtjZjFCLCtEQStCb0IsZ0JBQWlCLEtBL0JyQyx1RkFvQzRCLGdCQUFpQixVQXBDN0Msb0VsQm1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVpQnpESCxjQUFlLEtBNUNuQywwRUFBQSwyRXBCMExJLFFBQVMsR0FDVCxRQUFTLE1vQjNMYiwwRXBCK0xJLE1BQU8sS29CL0xYLHdFbEJtQkksTUlac0IsS0pZdEIsTUN5SDhELEtEekg5RCxNRUF3RCxLRkF4RCxZQytFb0IsRUQvRXBCLGFDa0ZtQixFaUJyR3ZCLG9FcEJnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVW9CZW9DLEtwQmRwQyxZQUZnRCxPQUdoRCxNQXZCTSxRQTZCTixlQUFrQixNb0JTRixlQUFnQixVQXZEcEMsbUVwQmdDSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBMkN1QixJQTFDdkIsV0EwQzRCLE9BdEM1QixVb0JzQm9DLEtwQnJCcEMsWUFGZ0QsT0FHaEQsTUF2Qk0sUUE2Qk4sZUFBa0IsTW9CZ0JGLGVBQWdCLFVBOURwQyxtRXBCZ0NJLFlBSkssTUFBUSxDQUFFLFdBS2YsWUFtQ3VCLElBbEN2QixXQWtDNEIsT0E5QjVCLFVvQjZCb0MsS3BCNUJwQyxZb0I0Qm9ELEtwQjNCcEQsTUF2Qk0sUW9CakJWLG1FcEJnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQW1DdUIsSUFsQ3ZCLFdBa0M0QixPQTlCNUIsVW9Ca0NvQyxLcEJqQ3BDLFlvQmlDb0QsS3BCaENwRCxNQXZCTSxRb0JqQlYseUVBMkV3QixnQkFBaUIsS0MzRXpDLG9EbkJtQkksTUlac0IsS0pZdEIsTUN5SDhELEtEekg5RCxNRUF3RCxLRkF4RCxZQytFb0IsRUQvRXBCLGFDa0ZtQixFa0I5RlgsUUFBUyxLQUNULFlBQWEsS0FDYixlQUFnQixNQUNoQixTQUFVLE9BVnRCLDBEQUFBLDJEckIwTEksUUFBUyxHQUNULFFBQVMsTXFCM0xiLDBEckIrTEksTUFBTyxLcUIvTFgsa0VuQm1CSSxNQ3dJVSxVRHhJVixNRUF3RCxLaUJuQjVELHFFckJnQ0ksWUFKSyxNQUFRLENBQUUsV0FLZixZQTJDdUIsSUExQ3ZCLFdBMEM0QixPQXRDNUIsVXFCckJvQyxLckJzQnBDLFlxQnRCb0QsS3JCdUJwRCxNQXZCTSxRQTZCTixlQUFrQixNcUIzQkYsZUFBZ0IsVUFDaEIsY0FBZSxLQXBCbkMsb0VyQmdDSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBbUN1QixJQWxDdkIsV0FrQzRCLE9BOUI1QixVcUJYb0MsS3JCWXBDLFlxQlpvRCxLckJhcEQsTUF2Qk0sUXFCV1UsY0FBZSxLQTVCbkMsc0VBK0J3QixnQkFBaUIsVUEvQnpDLDRFQWtDNEIsZ0JBQWlCLEtBbEM3QywwRG5CbUJJLE1Dd0lVLFVEeElWLE1FQXdELEtGQXhELFlDd0lVLFNrQmhIRSxZQUFhLElBQUksTXJCdkIxQixRcUJ3QlMsV0FBWSxPQTVDNUIsd0VBQUEsMEVBQUEsNkVuQm1CSSxNSVpzQixLSll0QixNQ3lIOEQsS0R6SDlELE1FQXdELEtGQXhELFlDK0VvQixFRC9FcEIsYUNrRm1CLEVrQnJESCxhQUFjLEtBQ2QsY0FBZSxLQWpEbkMsd0VyQmdDSSxZQUpLLE1BQVEsQ0FBRSxXQUtmLFlBMkN1QixJQTFDdkIsV0EwQzRCLE9BdEM1QixVcUJtQndDLEtyQmxCeEMsWXFCa0J3RCxLckJqQnhELE1BdkJNLFFBNkJOLGVBQWtCLE1xQmFFLGVBQWdCLFVBM0R4Qyw2Rm5CbUJJLE1JWnNCLEtKWXRCLE1DeUg4RCxLRHpIOUQsTUVBd0QsS0ZBeEQsWUMrRW9CLEVEL0VwQixhQ2tGbUIsRWtCaENDLE9BQVEsS0FDUixTQUFVLE9BdEVsQyw2RUE2RW9CLFdBQVksS0E3RWhDLGdGQW1Gd0IsZUFBZ0IiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY0LjEuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLCAvKiAxICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbiwgLyogMiAqL1xubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG50ZW1wbGF0ZSwgLyogMSAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udDogaW5oZXJpdDsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb250IHdlaWdodCB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSB0ZXh0IHN0eWxlIG9mIHBsYWNlaG9sZGVycyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufSIsbnVsbCwiKiB7XG4gICAgQGluY2x1ZGUgemVybztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhpbmhlcml0KTsgLy8gJGJveC1tb2RlbFxufVxuXG5odG1sIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTsgLy8gJGJveC1tb2RlbFxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmh0bWwsIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBAaW5jbHVkZSB6ZXJvO1xufVxuXG5ib2R5IHtcbiAgICBAaW5jbHVkZSBmYWxsYmFjay1ub3JtYWw7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuLy9vdmVycmlkZXMgbm9ybWFsaXplLmNzc1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNntcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xufVxuXG5vbCwgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxub2wgbGksIHVsIGxpIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbmEsIGEgaW1nIHtcbiAgICBib3JkZXI6IDBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5he1xuICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuLy8gKioqKiogbWlzYyAqKioqKlxuLy8gcmVzcG9uc2l2ZSBpbWFnZXNcbmltZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG5cbi8vIHNlbGVjdGlvbiBvZiB0ZXh0XG4kcHJlZml4ZXM6IChcIi1tb3otXCIsIFwiLXdlYmtpdC1cIiwgXCJcIik7XG5AbWl4aW4gc2VsZWN0aW9uKCRjb2xvciwgJGJhY2tncm91bmQpIHtcbiAgICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgICAgIDo6I3skcHJlZml4fXNlbGVjdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNlbGVjdGlvbih3aGl0ZSwgJHNoaXAtY292ZSAhaW1wb3J0YW50KTtcblxuXG4vLyB2aWRlbywgaWZyYW1lLCBlbWJlZCwgZXRjXG52aWRlbyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuaWZyYW1lLFxuZW1iZWQsXG5vYmplY3Qge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgLy8gZG8gbm90IHVzZSAnaGVpZ2h0OiBhdXRvOycgaGVyZSEhXG59XG5cbi8vIGZvcm0gZWxlbWVudHMgLSByZW1vdmVzIHJvdW5kZWQgY29ybmVyc1xuc2VsZWN0e1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAvLyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7ICAvLyByZW1vdmUgc2hhZG93IGluIGlPU1xufVxuXG5zdXAsIHN1YiB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0wLjVlbTtcbiAgICBmb250LXNpemU6IDY1JTtcbn1cblxuc3ViIHtcbiAgICB0b3A6IDAuNWVtO1xufVxuXG4vLyBtaW4taGVpZ2h0XG4kbWluLWhlaWdodDogMTAwcHg7XG5cbi5taW4taGVpZ2h0IHtcbiAgICBoZWlnaHQ6ICRtaW4taGVpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4qIGh0bWwgLm1pbi1oZWlnaHQge1xuICAgIGhlaWdodDogJG1pbi1oZWlnaHQ7XG59XG5cbmh0bWw+Ym9keSAubWluLWhlaWdodCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAgLyogQ2xlYXJmaXghICovXG4gICAgem9vbTogMTsgICAgICAgICAgICAgIC8qIFRyaWdnZXJzIFwiaGFzTGF5b3V0XCIgaW4gSUUgKi9cbiAgICBkaXNwbGF5OiBibG9jazsgICAgICAgLyogRWxlbWVudCBtdXN0IGJlIGEgYmxvY2sgdG8gd3JhcCBhcm91bmQgY29udGVudHMuIFVubmVjZXNzYXJ5IGlmIG9ubHkgdXNpbmcgb24gZWxlbWVudHMgdGhhdCBhcmUgYmxvY2stbGV2ZWwgYnkgZGVmYXVsdC4gKi9cbn0iLCIvLyAxLiB2YXJpYWJsZXNcbi8vIDIuIGNvbG9yc1xuLy8gMy4gZm9udHNcbi8vIDQuIG1peGluc1xuXG5cbi8vICoqKioqIDEuIHZhcmlhYmxlcyAqKioqKlxuJGNvbnRhaW5lci13aWR0aDogOTc0cHg7XG4kZm9vdGVyLWhlaWdodDogNjE2cHg7XG5cblxuXG4vLyAqKioqKiAyLiBjb2xvcnMgLS0gTmFtZSB0aGF0IGNvbG9yOiBodHRwOi8vY2hpci5hZy9wcm9qZWN0cy9uYW1lLXRoYXQtY29sb3IvICoqKioqXG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMwMDA7XG5cbiRtaW5lLXNoYWZ0OiAjMzkzOTM5O1xuJGVtcGVyb3I6ICM0ZjRmNGY7XG5cbiRncmF5OiAjODg4O1xuJGFsdG86ICNkZmRmZGY7XG5cbiRzaGlwLWNvdmU6ICM2ODkxYjk7XG4kcGlja2xlZC1ibHVld29vZDogIzJlMzk0ZjtcblxuXG4vLyAqKioqKiAzLiBmb250cyAqKioqKlxuJGZhbGxiYWNrOiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHJvYm90bzogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG5cblxuQG1peGluIGZvbnQoJGZhbWlseSwgJHdlaWdodCwgJHN0eWxlKSB7XG4gICAgZm9udC1mYW1pbHk6ICRmYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xufVxuXG5AbWl4aW4gZm9udC1zdHlsZSgkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodDogbm9ybWFsICl7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbn1cblxuLy8gQ29udmVydCBQaG90b3Nob3AgdHJhY2tpbmcgdG8gQ1NTIGxldHRlci1zcGFjaW5nIC0tIGh0dHA6Ly9ibG9nLmpvc2hjYWlybmV5LmNvbS9wb3N0LzM2ODk2MTY1NTIxL2NvbnZlcnQtcGhvdG9zaG9wLXRyYWNraW5nLXRvLWNzcy1sZXR0ZXItc3BhY2luZ1xuLy8gRG8gbm90IHVzZSBweCBvciBlbVxuQG1peGluIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUsICR0cmFja2luZykge1xuICAgIGxldHRlci1zcGFjaW5nOiAoKCRmb250LXNpemUgKiAkdHJhY2tpbmcpIC8gMTAwMCkgKiAxcHg7XG59XG5cbi8vIHN0YW5kYXJkIHdlYiBmb250XG5AbWl4aW4gZmFsbGJhY2stbm9ybWFse1xuICAgIEBpbmNsdWRlIGZvbnQoJGZhbGxiYWNrLCBub3JtYWwsIG5vcm1hbCk7IC8vJGZhbWlseSwgJHdlaWdodCwgJHN0eWxlXG59XG5cbkBtaXhpbiBmYWxsYmFjay1ib2xke1xuICAgIEBpbmNsdWRlIGZvbnQoJGZhbGxiYWNrLCBib2xkLCBub3JtYWwpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG5AbWl4aW4gZmFsbGJhY2staXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250KCRmYWxsYmFjaywgbm9ybWFsLCBpdGFsaWMpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG5AbWl4aW4gZmFsbGJhY2stYm9sZC1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQoJGZhbGxiYWNrLCBib2xkLCBpdGFsaWMpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG4vLyBSb2JvdG9cbkBtaXhpbiByb2JvdG8tbm9ybWFsIHtcbiAgICBAaW5jbHVkZSBmb250KCRyb2JvdG8sIDQwMCwgbm9ybWFsKTsgLy8kZmFtaWx5LCAkd2VpZ2h0LCAkc3R5bGVcbn1cblxuQG1peGluIHJvYm90by1ub3JtYWwtaXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250KCRyb2JvdG8sIDQwMCwgaXRhbGljKTsgLy8kZmFtaWx5LCAkd2VpZ2h0LCAkc3R5bGVcbn1cblxuQG1peGluIHJvYm90by1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIGZvbnQoJHJvYm90bywgNTAwLCBub3JtYWwpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG5AbWl4aW4gcm9ib3RvLW1lZGl1bS1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQoJHJvYm90bywgNTAwLCBpdGFsaWMpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG5AbWl4aW4gcm9ib3RvLWJvbGQge1xuICAgIEBpbmNsdWRlIGZvbnQoJHJvYm90bywgNzAwLCBub3JtYWwpOyAvLyRmYW1pbHksICR3ZWlnaHQsICRzdHlsZVxufVxuXG5AbWl4aW4gcm9ib3RvLWJvbGQtaXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250KCRyb2JvdG8sIDcwMCwgaXRhbGljKTsgLy8kZmFtaWx5LCAkd2VpZ2h0LCAkc3R5bGVcbn1cblxuQG1peGluIHJvYm90by1ibGFjayB7XG4gICAgQGluY2x1ZGUgZm9udCgkcm9ib3RvLCA5MDAsIG5vcm1hbCk7IC8vJGZhbWlseSwgJHdlaWdodCwgJHN0eWxlXG59XG5cbkBtaXhpbiByb2JvdG8tYmxhY2staXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250KCRyb2JvdG8sIDkwMCwgaXRhbGljKTsgLy8kZmFtaWx5LCAkd2VpZ2h0LCAkc3R5bGVcbn1cblxuQG1peGluIGZvbnRlbGxve1xuICAgIGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XG59XG5cblxuLy8gKioqKiogNC4gbWl4aW5zICoqKioqXG4vLyBib3JkZXItYm94XG5AbWl4aW4gYm94LXNpemluZygkYm94LW1vZGVsKSB7XG4td2Via2l0LWJveC1zaXppbmc6ICRib3gtbW9kZWw7IC8vIFNhZmFyaSA8PSA1XG4tbW96LWJveC1zaXppbmc6ICRib3gtbW9kZWw7IC8vIEZpcmVmb3ggPD0gMTlcbmJveC1zaXppbmc6ICRib3gtbW9kZWw7XG59XG5cbi8vIC0tIGRlZmF1bHQgLS0gcG9zaXRpb246IHJlbGF0aXZlO1xuQG1peGluIGJsb2NrKCRwb3NpdGlvbjogcmVsYXRpdmUgICkge1xucG9zaXRpb246ICRwb3NpdGlvbjtcbmRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyAtLSBkZWZhdWx0IC0tIGZsb2F0OiBsZWZ0O1xuQG1peGluIGlubGluZSgkZmxvYXQ6IGxlZnQpIHtcbmZsb2F0OiAkZmxvYXQ7XG5kaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8vIC0tIGRlZmF1bHQgLS0gbWFyZ2luOiAwZW07IHBhZGRpbmc6IDBlbTtcbkBtaXhpbiB6ZXJvKCRtYXJnaW46IDBlbSwgJHBhZGRpbmc6IDBlbSl7XG5tYXJnaW46ICRtYXJnaW47XG5wYWRkaW5nOiAkcGFkZGluZztcbn1cblxuXG4vLyBjZW50ZXIgc25pcHBldCAtLSBodHRwOi8vYml0c29mY28uZGUvMy11c2VmdWwtcmV1c2FibGUtc2Fzcy1taXhpbnMvXG5AbWl4aW4gY2VudGVyKCRwb3NpdGlvbikge1xuXG4gICAgJHBlcmNlbnQ6IDUwJTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIEBpZiAkcG9zaXRpb24gPT0gXCJ2ZXJ0XCIge1xuICAgICAgICB0b3A6ICRwZXJjZW50O1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogIHRyYW5zbGF0ZSgwJSwgLSRwZXJjZW50KTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogIHRyYW5zbGF0ZSgwJSwgLSRwZXJjZW50KTtcbiAgICAgICAgdHJhbnNmb3JtOiAgdHJhbnNsYXRlKDAlLCAtJHBlcmNlbnQpO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBcImhvcnpcIiB7XG4gICAgICAgIGxlZnQ6ICRwZXJjZW50O1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogIHRyYW5zbGF0ZSgtJHBlcmNlbnQsIDAlKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogIHRyYW5zbGF0ZSgtJHBlcmNlbnQsIDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiAgdHJhbnNsYXRlKC0kcGVyY2VudCwgMCUpO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBcImJvdGhcIiB7XG4gICAgICAgIHRvcDogJHBlcmNlbnQ7XG4gICAgICAgIGxlZnQ6ICRwZXJjZW50O1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0kcGVyY2VudCwgLSRwZXJjZW50KTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC0kcGVyY2VudCwgLSRwZXJjZW50KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRwZXJjZW50LCAtJHBlcmNlbnQpO1xuICAgIH1cbn1cblxuXG4vLyBIaWRpbmcgYW5kIFNob3dpbmcgRWxlbWVudHMgd2l0aCBhIFRyYW5zaXRpb24gLS0gaHR0cDovL2JpdHNvZmNvLmRlLzMtdXNlZnVsLXJldXNhYmxlLXNhc3MtbWl4aW5zL1xuQG1peGluIGZhZGUoJHR5cGUpIHtcblxuICAgIEBpZiAkdHlwZSA9PSBcIm91dFwiIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR0eXBlID09IFwiaW5cIiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XG4gICAgfVxufVxuXG5cbi8qIEdldCBhIENsZWFyIEZpeCBvbiBDbGVhcmluZyBGbG9hdHNcbmh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jc3MtYXJjaGl0ZWN0dXJlcy1uZXctYmVzdC1wcmFjdGljZXMvICovXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICAgKnpvb206MTtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG5cbi8vIGJ1dHRvbiBzdHlsaW5nXG5AbWl4aW4gYnRuKCRib3JkZXItY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpIHtcbmJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oICRib3JkZXItY29sb3IsIDEwJSApO1xuYmFja2dyb3VuZDogbGlnaHRlbiggJGJhY2tncm91bmQtY29sb3IsIDEwJSApO1xuY29sb3I6ICRjb2xvcjtcbnRyYW5zaXRpb246IGJvcmRlciAuMjVzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQsIGNvbG9yIC4yNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVye1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAuMjVzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQsIGNvbG9yIC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxufVxuXG5cbi8vIG9wYWNpdHkgLS0gYmUgc3VyZSB0byB1c2UgYSBkZWNpbWFsIG51bWJlclxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcblxuICAgIC8vIElFXG4gICAgJG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7XG4gICAgLy8gRm9yIElFIDUtN1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKG9wYWNpdHk9I3skb3BhY2l0eS1pZX0pO1xuICAgIC8vRm9yIElFIDggKGFuZCA5LCAxMCwgMTE/KS4gRG9uJ3QgbWlzcyB0aGUgYWRkZWQgcXVvdGVzXG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEob3BhY2l0eT0jeyRvcGFjaXR5LWllfSlcIjtcbn1cblxuLy8gZ3JheXNjYWxlXG5AbWl4aW4gZ3JheXNjYWxlKCR2YWx1ZSkge1xuICAgIC13ZWJraXQtZmlsdGVyOiAje1wiZ3JheXNjYWxlKCN7JHZhbHVlfSlcIn07XG4gICAgLW1vei1maWx0ZXI6ICN7XCJncmF5c2NhbGUoI3skdmFsdWV9KVwifTtcbiAgICBmaWx0ZXI6I3tcImdyYXlzY2FsZSgjeyR2YWx1ZX0pXCJ9O1xuICAgIGZpbHRlcjogdXJsKC9zdGF0aWMvaW1nL2dyYXlzY2FsZS5zdmcpOyAvKiBGaXJlZm94IDQrICovXG59XG5cbi8vIHdvcmQgd3JhcCAtLSBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9wcmV2ZW50LWxvbmctdXJscy1mcm9tLWJyZWFraW5nLW91dC1vZi1jb250YWluZXIvXG5AbWl4aW4gd29yZC13cmFwKCkge1xub3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbndvcmQtd3JhcDogYnJlYWstd29yZDtcbi1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG53b3JkLWJyZWFrOiBicmVhay13b3JkO1xuLW1zLWh5cGhlbnM6IGF1dG87XG4tbW96LWh5cGhlbnM6IGF1dG87XG4td2Via2l0LWh5cGhlbnM6IGF1dG87XG5oeXBoZW5zOiBhdXRvO1xufVxuXG4vLyBiYWNrZ3JvdW5kLXNpemUgLS0gaW5jbHVkZXMgd2Via2l0XG5AbWl4aW4gYmFja2dyb3VuZC1zaXplKCRiZy1zaXplKXtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogJGJnLXNpemU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmctc2l6ZTtcbn1cbiIsIiR0b3BiYXItaGVpZ2h0OiAzNnB4O1xuJG5hdi1oZWlnaHQ6IDEzMHB4O1xuXG4udG9wYmFyLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbWluZS1zaGFmdDtcblxuICAgIC50b3BiYXJ7XG4gICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG5cbiAgICAgICAgJl9fbWVzc2FnZXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNSk7XG5cbiAgICAgICAgICAgICZfX3Byb21ve1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1tZWRpdW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxM3B4LCAkd2hpdGUsICR0b3BiYXItaGVpZ2h0KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaWduLWluLWNhcnR7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHVzaCg0KTtcblxuICAgICAgICAgICAgJl9fbmF2e1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNlbnRlcih2ZXJ0KTsgLy8gdmVydCwgaG9yeiwgYm90aFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19uYXZJdGVte1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlubGluZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIxcHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLWJvbGQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxMnB4LCAkd2hpdGUsIDIxcHgpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBle1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1jb250YWluZXJ7XG5oZWlnaHQ6ICRuYXYtaGVpZ2h0O1xuXG4gICAgLm5hdntcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6ICRuYXYtaGVpZ2h0O1xuXG4gICAgICAgICZfX2xvZ297XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDUpO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2VudGVyKHZlcnQpOyAvLyB2ZXJ0LCBob3J6LCBib3RoXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rc3tcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNyk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIHVse1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDBlbTtcblxuICAgICAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzZweDtcblxuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLWJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDEzcHgsICRlbXBlcm9yLCAkbmF2LWhlaWdodCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTMsIDEwMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIHJlbSBTdXBwb3J0XG4vLyA9PT09PT09PT09PVxuXG4vLyByZW1cbi8vIC0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIG91dHB1dCBkaXJlY3RseS5cbi8vIC0gJHByb3AgIDogPGNzcyBwcm9wZXJ0eT5cbi8vIC0gJHZhbCAgIDogPGNzcyB2YWx1ZT5cbkBtaXhpbiBzdXN5LXJlbShcbiAgJHByb3AsXG4gICR2YWxcbikge1xuICAkX3JlcXM6IChcbiAgICB2YXJpYWJsZTogcmh5dGhtLXVuaXQgcmVtLXdpdGgtcHgtZmFsbGJhY2ssXG4gICAgbWl4aW46IHJlbSxcbiAgKTtcbiAgQGlmIHN1c3ktc3VwcG9ydChyZW0sICRfcmVxcywgJHdhcm46IGZhbHNlKSBhbmQgJHJoeXRobS11bml0ID09IHJlbSB7XG4gICAgQGluY2x1ZGUgcmVtKCRwcm9wLCAkdmFsKTtcbiAgfSBAZWxzZSB7XG4gICAgI3skcHJvcH06ICR2YWw7XG4gIH1cbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIGNvbW1vblxuLmZ1bGwtd2lkdGgtY29udGFpbmVye1xuICAgIEBpbmNsdWRlIGJsb2NrO1xuICAgIEBpbmNsdWRlIGZ1bGw7XG59XG5cbi5jb250ZW50LXdpZHRoe1xuICAgIEBpbmNsdWRlIGJsb2NrO1xuICAgIHdpZHRoOiAkY29udGFpbmVyLXdpZHRoO1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbn1cblxuXG4vLyBoZXJvXG4uaGVyby1jb250YWluZXJ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYtLWxhcmdle1xuICAgICAgICBoZWlnaHQ6IDQ0NnB4O1xuICAgIH1cblxuICAgICYtLXNtYWxse1xuICAgICAgICBoZWlnaHQ6IDM1MHB4O1xuICAgIH1cblxuICAgIC5oZXJvLWNvcHl7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRlcihib3RoKTsgLy8gdmVydCwgaG9yeiwgYm90aFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9fdGl0bGV7XG4gICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tYmxhY2s7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDQ2cHgsICR3aGl0ZSk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoNDYsIDgwKTsgLy8kZm9udC1zaXplLCAkdHJhY2tpbmcgLS0gRG8gbm90IHVzZSBweCBvciBlbVxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1YnRpdGxle1xuICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLW5vcm1hbDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMjNweCwgJHdoaXRlKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b257XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxNjRweDtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvIDBlbSBhdXRvO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuKCR3aGl0ZSwgdHJhbnNwYXJlbnQsICR3aGl0ZSk7IC8vICRib3JkZXItY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3JcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcblxuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidG4oJHdoaXRlLCAgJHdoaXRlLCAkYmxhY2spOyAvLyAkYm9yZGVyLWNvbG9yLCAkYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLWJvbGQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxM3B4LCBudWxsKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjZW50ZXIoXCJib3RoXCIpOyAvLyB2ZXJ0LCBob3J6LCBib3RoXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gY29udGVudFxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgICBAZXh0ZW5kIC5jb250ZW50LXdpZHRoO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMGVtO1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgLmNvbnRlbnR7XG4gICAgICAgIEBleHRlbmQgLmNvbnRlbnQtd2lkdGg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZm9vdGVyLWhlaWdodDsgLy8gbXVzdCBiZSBzYW1lIGhlaWdodCBhcyB0aGUgZm9vdGVyICgkZm9vdGVyLWhlaWdodCBmb3VuZCBpbjogJ192YXJpYWJsZXNfbWl4aW5zX2Z1bmN0aW9ucy5zY3NzJylcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAvLyB0aXRsZSAvIDxocj4gbW9kdWxlXG4gICAgLmNvcHktY29udGFpbmVye1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAuY29weXtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG5cbiAgICAgICAgICAgICZfX3RpdGxle1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ibGFjaztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDMwcHgsICRlbXBlcm9yKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMzAsIDEwMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAgICAgJi0tbm9ybWFse1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3N1YnRpdGxle1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1tZWRpdW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxNXB4LCAkZW1wZXJvciwgMjBweCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDE1LCAxMjApOyAvLyRmb250LXNpemUsICR0cmFja2luZyAtLSBEbyBub3QgdXNlIHB4IG9yIGVtXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9faW50cm97XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLW5vcm1hbDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyNHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbGlua3tcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbWVkaXVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTNweCwgJGVtcGVyb3IpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygxMywgMTIwKTsgLy8kZm9udC1zaXplLCAkdHJhY2tpbmcgLS0gRG8gbm90IHVzZSBweCBvciBlbVxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIGhvcml6b250YWwgcnVsZVxuLmhye1xuYm9yZGVyOiAwcHg7XG5cbiAgICAvLyBsZW5ndGhcbiAgICAmLS1sYXJnZXtcbiAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICB9XG5cbiAgICAmLS1zbWFsbHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyKDQwcHgpO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgQGV4dGVuZCAudS1tYXJnaW4tMjA7XG4gICAgfVxuXG4gICAgLy8gY29sb3JcbiAgICAmLS1lbXBlcm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGVtcGVyb3I7XG4gICAgfVxuXG4gICAgJi0tYWx0byB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhbHRvO1xuICAgIH1cblxuICAgICYtLXBpY2tsZWQtYmx1ZXdvb2Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGlja2xlZC1ibHVld29vZDtcbiAgICB9XG5cbiAgICAmLS13aGl0ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB9XG59XG5cblxuLy8gcmV1c2VhYmxlIG1hcmdpbnMgKG1hcmdpbi10b3AgYW5kIG1hcmdpbi1ib3R0b20pIGZvciB0aGUgc2l0ZTpcbi8vIDEwLCAyMCwgMzAsIDQwLCA1MCwgNjAsIDcwLCA4MCwgOTAsIDEwMFxuJG1hcmdpbjogMTA7XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1hcmdpbiB7XG4gICAgLnUtbWFyZ2luLSN7JGkqMTB9IHtcbiAgICBtYXJnaW4tdG9wOiAoMTAgICogJGkpICogMXB4O1xuICAgIG1hcmdpbi1ib3R0b206ICgxMCAgKiAkaSkgKiAxcHg7XG4gICAgfVxufVxuXG4vLyByZXVzZWFibGUgcGFkZGluZ3MgKHBhZGRpbmctdG9wIGFuZCBwYWRkaW5nLWJvdHRvbSkgZm9yIHRoZSBzaXRlOlxuLy8gMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzAsIDgwLCA5MCwgMTAwXG4kcGFkZGluZzogMTA7XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHBhZGRpbmcge1xuICAgIC51LXBhZGRpbmctI3skaSoxMH0ge1xuICAgIHBhZGRpbmctdG9wOiAoMTAgICogJGkpICogMXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAoMTAgICogJGkpICogMXB4O1xuICAgIH1cbn0iLCIvLyBSb3cgU3RhcnQgJiBFbmRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBCcmVha1xuLy8gLS0tLS1cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cbkBtaXhpbiBicmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcbn1cblxuXG4vLyBOb0JyZWFrXG4vLyAtLS0tLS0tXG4vLyBDYW5jZWwgdGhlIGJyZWFrKCkgZWZmZWN0LCBlLmcuIHdoZW4gdXNpbmcgbWVkaWEgcXVlcmllcy5cbkBtaXhpbiBub2JyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogbm9uZSkpO1xufVxuXG5cbi8vIEZ1bGxcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPGxheW91dCBzaG9ydGhhbmQ+XG5AbWl4aW4gZnVsbChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgOiAkY29udGV4dDtcbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZ1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgc3BhbihmdWxsIG9mIHBhcnNlLWdyaWQoJGNvbnRleHQpIGJyZWFrKTtcbn1cblxuXG4vLyBGaXJzdFxuLy8gLS0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGZpcnN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZmlyc3QsICRpbnNwZWN0KTtcbiAgQGlmIG5vdChpcy1zcGxpdCgkY29udGV4dCkpIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1maXJzdCgkZmxvdyk7XG4gIH1cbn1cblxuQG1peGluIGFscGhhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBmaXJzdCgkY29udGV4dCk7XG59XG5cblxuLy8gTGFzdFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gbGFzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSxcbiAgICBsYXN0LWZsb3c6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJGNvbnRleHQpLFxuICAgIG1hcmdpbjogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCBudWxsLCAwKSxcbiAgKTtcblxuICBAaW5jbHVkZSBmbG9hdC1sYXN0KCRvdXRwdXQuLi4pO1xufVxuXG5AbWl4aW4gb21lZ2EoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGxhc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIEdldCBFZGdlXG4vLyAtLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGVkZ2UgdmFsdWUgYmFzZWQgb24gbG9jYXRpb24sIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWVkZ2UoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBzdXN5LWdldChlZGdlLCAkc3Bhbik7XG5cbiAgQGlmIG5vdCgkZWRnZSkge1xuICAgICRjb3VudDogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpO1xuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gICAgJG51bWJlcjogaWYodHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciwgdHJ1ZSwgZmFsc2UpO1xuICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRuID09ICRjb3VudCB7XG4gICAgICAkZWRnZTogZnVsbDtcbiAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgICAkZWRnZTogaWYoJG4gPT0gJGNvdW50LCBmdWxsLCBmaXJzdCk7XG4gICAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiArICRuIC0gMSA9PSAkY291bnQge1xuICAgICAgICAkZWRnZTogbGFzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVkZ2UgPT0gYWxwaGEgb3IgJGVkZ2UgPT0gb21lZ2Ege1xuICAgICRlZGdlOiBpZigkZWRnZSA9PSBhbHBoYSwgZmlyc3QsIGxhc3QpO1xuICB9XG5cbiAgQHJldHVybiAkZWRnZTtcbn1cblxuXG4vLyBHZXQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGxvY2F0aW9uIHZhbHVlIGJhc2VkIG9uIGVkZ2UsIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWxvY2F0aW9uKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRsb2NhdGlvbiAgIDogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRuICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gIEBpZiAkZWRnZSBhbmQgbm90KCRsb2NhdGlvbikgYW5kIHR5cGUtb2YoJG4pID09IG51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcbiAgICBAaWYgJGVkZ2UgPT0gZmlyc3Qge1xuICAgICAgJGxvY2F0aW9uOiAxO1xuICAgIH0gQGVsc2UgaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkbG9jYXRpb246IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKSAtICRuICsgMTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsb2NhdGlvblxufVxuIiwiLy8gQ29udGFpbmVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBhIGNvbnRhaW5lciBlbGVtZW50XG4vLyAtIFskbGF5b3V0XSAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gY29udGFpbmVyKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICAgIDogJGxheW91dDtcbiAgJGxheW91dCAgICAgOiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuXG4gICRfd2lkdGggICAgIDogZ2V0LWNvbnRhaW5lci13aWR0aCgkbGF5b3V0KTtcbiAgJF9qdXN0aWZ5ICAgOiBwYXJzZS1jb250YWluZXItcG9zaXRpb24oc3VzeS1nZXQoY29udGFpbmVyLXBvc2l0aW9uLCAkbGF5b3V0KSk7XG4gICRfcHJvcGVydHkgIDogaWYoc3VzeS1nZXQobWF0aCwgJGxheW91dCkgPT0gc3RhdGljLCB3aWR0aCwgbWF4LXdpZHRoKTtcblxuICAkX2JveCAgICAgICA6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRsYXlvdXQpO1xuXG4gIEBpZiAkX2JveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkX2JveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGNvbnRhaW5lciwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBmbG9hdC1jb250YWluZXIoJF93aWR0aCwgJF9qdXN0aWZ5LCAkX3Byb3BlcnR5KTtcbiAgQGluY2x1ZGUgc2hvdy1ncmlkKCRsYXlvdXQpO1xufVxuXG4vLyBDb250YWluZXIgW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBjb250YWluZXIgd2lkdGhcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgQHJldHVybiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xufVxuXG4vLyBHZXQgQ29udGFpbmVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgdGhlIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF06IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtY29udGFpbmVyLXdpZHRoKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRsYXlvdXQgICAgICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfd2lkdGggICAgICAgICA6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCk7XG4gICRfY29sdW1uLXdpZHRoICA6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGxheW91dCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRsYXlvdXQpO1xuXG4gIEBpZiBub3QoJF93aWR0aCkgb3IgJF93aWR0aCA9PSBhdXRvIHtcbiAgICBAaWYgdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCkge1xuICAgICAgJF9jb2x1bW5zICAgOiBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgICAgICRfZ3V0dGVycyAgIDogc3VzeS1nZXQoZ3V0dGVycywgJGxheW91dCk7XG4gICAgICAkX3NwcmVhZCAgICA6IGlmKGlzLXNwbGl0KCRsYXlvdXQpLCB3aWRlLCBuYXJyb3cpO1xuICAgICAgJF93aWR0aCAgICAgOiBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpICogJF9jb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX3dpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF93aWR0aDtcbn1cblxuLy8gUGFyc2UgQ29udGFpbmVyIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhcnNlIHRoZSAkY29udGFpbmVyLXBvc2l0aW9uIGludG8gbWFyZ2luIHZhbHVlcy5cbi8vIC0gWyRqdXN0aWZ5XSAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwgPGxlbmd0aD4gWzxsZW5ndGg+XVxuQGZ1bmN0aW9uIHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihcbiAgJGp1c3RpZnk6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGNvbnRhaW5lci1wb3NpdGlvbilcbikge1xuICAkX3JldHVybjogaWYoJGp1c3RpZnkgPT0gbGVmdCwgMCwgYXV0bykgaWYoJGp1c3RpZnkgPT0gcmlnaHQsIDAsIGF1dG8pO1xuXG4gIEBpZiBub3QoaW5kZXgobGVmdCByaWdodCBjZW50ZXIsICRqdXN0aWZ5KSkge1xuICAgICRfcmV0dXJuOiBudGgoJGp1c3RpZnksIDEpO1xuICAgICRfcmV0dXJuOiAkX3JldHVybiBpZihsZW5ndGgoJGp1c3RpZnkpID4gMSwgbnRoKCRqdXN0aWZ5LCAyKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFN1c3kgRmFsbGJhY2sgQ2xlYXJmaXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuQG1peGluIHN1c3ktY2xlYXJmaXgge1xuICBAaWYgc3VzeS1zdXBwb3J0KGNsZWFyZml4LCAobWl4aW46IGNsZWFyZml4KSkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9IEBlbHNlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cbiIsIi53aW5lLWNvbnRhaW5lcntcbiAgICBAaW5jbHVkZSBmdWxsKCk7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAud2luZXtcblxuICAgICAgICBhe1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVye1xuXG4gICAgICAgICAgICAgICAgLndpbmVfX3RpdGxle1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZXtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyNHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWJ0aXRsZXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyNHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG5cbiAgICAgICAgICAgIGJ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLWJvbGQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxNXB4LCAkcGlja2xlZC1ibHVld29vZCwgMjRweCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29weXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgIH1cbiAgICB9XG59IiwiLnNlcnZpY2VzLWFydGljbGV7XG5cbiAgICAuaW50cm97XG4gICAgICAgIEBleHRlbmQgLnUtcGFkZGluZy03MDsgIC8vZm91bmQgaW46ICdfdXRpbGl0aWVzLnNjc3MnXG4gICAgfVxuXG4gICAgLmNvbHVtbnMtY29udGFpbmVye1xuICAgICAgICBAaW5jbHVkZSBmdWxsKCk7XG4gICAgICAgIC8vIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubWFpbi1jb250ZW50e1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig1KTtcblxuICAgICAgICAgICAgaDF7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLW1lZGl1bTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyMHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTUsIDEyMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLW5vcm1hbDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyNHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhc2lkZXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBwdXNoKDEpO1xuXG4gICAgICAgICAgICAuZm9ybS1jb250YWluZXJ7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmdhbGxlcnktY29udGFpbmVye1xuXG4gICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc2lnbi11cC1jb250YWluZXJ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnNpZ24tdXB7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRlcihib3RoKTsgLy8gdmVydCwgaG9yeiwgYm90aFxuXG4gICAgICAgIC8vIHNpemVcbiAgICAgICAgJi0tbGFyZ2V7XG4gICAgICAgICAgICB3aWR0aDogNDg0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDExMHB4O1xuXG4gICAgICAgICAgICAuc2lnbi11cF9fZW1haWx7XG5cbiAgICAgICAgICAgICAgICBpbnB1dHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxse1xuICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuXG4gICAgICAgICAgICAuc2lnbi11cF9fZW1haWx7XG5cbiAgICAgICAgICAgICAgICBpbnB1dHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRhbHRvO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhbHRvO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRhbHRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnRlbnRcbiAgICAgICAgJl9fdGl0bGV7XG4gICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbWVkaXVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxNXB4LCAkd2hpdGUsIDIwcHgpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB1bHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2VtYWlse1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig4KTtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcblxuICAgICAgICAgICAgaW5wdXR7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbm9ybWFsO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTRweCwgJGVtcGVyb3IpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Ym1pdHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tYm9sZDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE0cHgsICR3aGl0ZSwgNTBweCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ0bigkc2hpcC1jb3ZlLCAkc2hpcC1jb3ZlLCAkd2hpdGUpOyAvLyAkYm9yZGVyLWNvbG9yLCAkYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yXG5cbiAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidG4oJHBpY2tsZWQtYmx1ZXdvb2QsICRwaWNrbGVkLWJsdWV3b29kLCAkd2hpdGUgKTsgLy8gJGJvcmRlci1jb2xvciwgJGJhY2tncm91bmQtY29sb3IsICRjb2xvclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIlxuLy8gICRmb290ZXItaGVpZ2h0IGZvdW5kIGluOiAnX3ZhcmlhYmxlc19taXhpbnNfZnVuY3Rpb25zLnNjc3MnXG4uZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1pbi1oZWlnaHQ6ICRmb290ZXItaGVpZ2h0O1xuICAgIG1hcmdpbi10b3A6IC0kZm9vdGVyLWhlaWdodDsgLyogbmVnYXRpdmUgdmFsdWUgb2YgZm9vdGVyIGhlaWdodCAqL1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgLnNpZ24tdXAtY29udGFpbmVye1xuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2dsb2JhbC9mb290ZXItc2lnbi11cC1jb250YWluZXIuanBnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1zaXplKGNvdmVyKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaW5mby1jb250YWluZXJ7XG4gICAgICAgIGhlaWdodDogMzY2cHg7XG5cbiAgICAgICAgLmluZm97XG4gICAgICAgICAgICBoZWlnaHQ6IDMxMHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgY2VudGVyKGJvdGgpOyAvLyB2ZXJ0LCBob3J6LCBib3RoXG5cbiAgICAgICAgICAgIC8vIDQgY29sdW1uc1xuICAgICAgICAgICAgJl9fY29sdW1uc3tcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4MHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWx0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZWFjaCBjb2x1bW5cbiAgICAgICAgICAgICZfX2NvbHVtbntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBnYWxsZXJ5LTQ7IC8vZm91bmQgaW46ICdfc3VzeV9icmVha3BvaW50X3NldHRpbmdzLnNjc3MnXG5cbiAgICAgICAgICAgICAgICAmX190aXRsZXtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLWJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTRweCwgJGVtcGVyb3IpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhbHRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX3Vse1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX19saS0tc3VidGl0bGV7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ib2xkO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE0cHgsICRlbXBlcm9yKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fbGkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE0cHgsICRlbXBlcm9yLCAyMHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG5cbiAgICAgICAgICAgICAgICAgICAgYVtocmVmXj1cIm1haWx0b1wiXXtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1tZWRpdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHBpY2tsZWQtYmx1ZXdvb2Q7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX191bC0tc29jaWFse1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX2xpLS1zb2NpYWxMaW5re1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcblxuICAgICAgICAgICAgICAgICAgICBpe1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udGVsbG87XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDI0cHgsICRwaWNrbGVkLWJsdWV3b29kKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2hpcC1jb3ZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFBvd2VyZWQgYnkgV2luZUZldGNoXG4gICAgICAgICAgICAmX19jb3B5cmlnaHR7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAudS1wYWRkaW5nLTIwOyAgLy9mb3VuZCBpbjogJ191dGlsaXRpZXMuc2NzcydcblxuICAgICAgICAgICAgICAgIHB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTRweCwgJGVtcGVyb3IpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gSXNvbGF0aW9uIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG5cbi8vIElzb2xhdGUgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgaXNvbGF0aW9uIGFzIGFuIG92ZXJyaWRlLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQG1peGluIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGluc3BlY3Q6ICRpc29sYXRlO1xuXG4gICRvdXRwdXQ6IChcbiAgICBwdXNoOiBpc29sYXRlKCRpc29sYXRlKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkaXNvbGF0ZSksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGlzb2xhdGUsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgaXNvbGF0ZS1vdXRwdXQoJG91dHB1dC4uLik7XG59XG5cblxuLy8gSXNvbGF0ZSBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBhbiBpc29sYXRpb24gb2Zmc2V0IHdpZHRoLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQGZ1bmN0aW9uIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGlzb2xhdGU6IHBhcnNlLXNwYW4oJGlzb2xhdGUpO1xuICAkaXNvbGF0aW9uOiBzdXN5LWdldChzcGFuLCAkaXNvbGF0ZSk7XG5cbiAgQGlmICRpc29sYXRpb24gYW5kIG5vdChnZXQtbG9jYXRpb24oJGlzb2xhdGUpKSB7XG4gICAgJG5ldzogKFxuICAgICAgc3BhbjogbnVsbCxcbiAgICAgIGxvY2F0aW9uOiAkaXNvbGF0aW9uLFxuICAgICk7XG4gICAgJGlzb2xhdGU6IG1hcC1tZXJnZSgkaXNvbGF0ZSwgJG5ldyk7XG4gIH1cblxuICBAcmV0dXJuIGdldC1pc29sYXRpb24oJGlzb2xhdGUpO1xufVxuXG5cbi8vIEdldCBJc29sYXRpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxuLy8gLSAkaW5wdXQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWlzb2xhdGlvbihcbiAgJGlucHV0XG4pIHtcbiAgJGxvY2F0aW9uICAgOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xuICAkd2lkdGggICAgICA6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIgYW5kIG5vdCh1bml0bGVzcygkbG9jYXRpb24pKSB7XG4gICAgJHdpZHRoOiAkbG9jYXRpb247XG4gIH0gQGVsc2UgaWYgJGxvY2F0aW9uIHtcbiAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcbiAgICBAaWYgJHB1c2ggPiAwIHtcbiAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoXG4gICAgICAgIHNwYW46ICRwdXNoLFxuICAgICAgICBsb2NhdGlvbjogMSxcbiAgICAgICAgc3ByZWFkOiB3aWRlLFxuICAgICAgKSk7XG4gICAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRwdXNoKTtcbiAgICB9XG4gIH1cblxuICBAaWYgc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkaW5wdXQpID09IHNwbGl0XG4gICAgICBhbmQgc3VzeS1nZXQoZ3V0dGVycywgJGlucHV0KSA+IDAge1xuICAgICR3aWR0aDogaWYoJHdpZHRoID09IG51bGwsIGd1dHRlcnMoJGlucHV0KSwgJHdpZHRoICsgZ3V0dGVycygkaW5wdXQpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoIG9yIDA7XG59XG4iLCIvLyBHYWxsZXJ5IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gR2FsbGVyeVxuLy8gLS0tLS0tLVxuLy8gQ3JlYXRlIGFuIGlzb2xhdGVkIGdhbGxlcnlcbi8vIC0gJHNwYW4gICAgICAgIDogPHNwYW4+XG4vLyAtIFskc2VsZWN0b3JdICA6IGNoaWxkIHwgb2YtdHlwZVxuQG1peGluIGdhbGxlcnkoXG4gICRzcGFuLFxuICAkc2VsZWN0b3I6IGNoaWxkXG4pIHtcbiAgJGluc3BlY3QgICAgOiAkc3BhbjtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJHNwYW4gICAgICAgOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogMSkpO1xuXG4gICRuICAgICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjb2x1bW5zICAgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRjb250ZXh0ICAgICAgOiBzdXN5LWNvdW50KCRjb2x1bW5zKTtcbiAgJGZsb3cgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcblxuICAkaW5zaWRlICAgICAgIDogaXMtaW5zaWRlKCRzcGFuKTtcbiAgJGZyb20gICAgICAgICA6IGZyb20oJGZsb3cpO1xuICAkbGluZSAgICAgICAgIDogZmxvb3IoJGNvbnRleHQgLyAkbik7XG4gICRzeW1tZXRyaWNhbCAgOiBpcy1zeW1tZXRyaWNhbCgkY29sdW1ucyk7XG5cbiAgJG91dHB1dDogKFxuICAgIHdpZHRoICAgICAgICAgICAgIDogbnVsbCxcbiAgICBmbG9hdCAgICAgICAgICAgICA6IGZyb20sXG4gICAgbWFyZ2luLWJlZm9yZSAgICAgOiBudWxsLFxuICAgIG1hcmdpbi1hZnRlciAgICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgIGZsb3cgICAgICAgICAgICAgIDogJGZsb3csXG4gICk7XG5cbiAgQGlmICRpbnNpZGUge1xuICAgICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsIChcbiAgICAgIHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpLFxuICAgICAgcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpLFxuICAgICkpO1xuICB9XG5cbiAgQGlmICRzeW1tZXRyaWNhbCB7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsICh3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSk7XG4gIH1cblxuICAkYm94ICAgICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkZ2xvYmFsLWJveCAgIDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpID09ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChnYWxsZXJ5LCAkaW5zcGVjdCk7XG5cbiAgLy8gQ29sbGVjdGl2ZSBPdXRwdXRcbiAgQGlmICRib3ggPT0gYm9yZGVyLWJveCBvciAoJGluc2lkZSBhbmQgbm90KCRib3gpIGFuZCBub3QoJGdsb2JhbC1ib3gpKSB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBib3JkZXItYm94KSk7XG4gIH0gQGVsc2UgaWYgJGJveCA9PSBjb250ZW50LWJveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBjb250ZW50LWJveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgLy8gSW5kaXZpZHVhbCBMb29wXG4gIEBmb3IgJGl0ZW0gZnJvbSAxIHRocm91Z2ggJGxpbmUge1xuICAgICRudGg6ICcjeyRsaW5lfW4gKyAjeyRpdGVtfSc7XG4gICAgJjpudGgtI3skc2VsZWN0b3J9KCN7JG50aH0pIHtcbiAgICAgIC8vIEluZGl2aWR1YWwgUHJlcFxuICAgICAgJG91dHB1dDogKFxuICAgICAgICB3aWR0aCAgICAgICAgICAgICA6IGlmKCRzeW1tZXRyaWNhbCwgbnVsbCwgZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSxcbiAgICAgICAgZmxvYXQgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICBtYXJnaW4tYmVmb3JlICAgICA6IGdldC1pc29sYXRpb24oJHNwYW4pLFxuICAgICAgICBtYXJnaW4tYWZ0ZXIgICAgICA6IC0xMDAlLFxuICAgICAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgICAgIHBhZGRpbmctYWZ0ZXIgICAgIDogbnVsbCxcbiAgICAgICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluZGl2aWR1YWwgT3V0cHV0XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAgICAgQGlmIGdldC1lZGdlKCRzcGFuKSA9PSBmaXJzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrO1xuICAgICAgICBAaW5jbHVkZSBmaXJzdCgkc3Bhbik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9icmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gSW5kaXZpZHVhbCBMb2NhdGlvbiBJbmNyZW1lbnRcbiAgICAgICRsb2NhdGlvbjogZ2V0LWxvY2F0aW9uKCRzcGFuKSArICRuO1xuICAgICAgJGxvY2F0aW9uOiBpZigkbG9jYXRpb24gPiAkY29udGV4dCwgMSwgJGxvY2F0aW9uKTtcbiAgICAgICRzcGFuOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogJGxvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGbG9hdCBFbmRzIEFQSVxuLy8gPT09PT09PT09PT09PT1cblxuLy8gU3VzeSBFbmQgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBsYXN0LWZsb3c6IHRvLFxuKSk7XG5cbi8vIEZsb2F0IExhc3Rcbi8vIC0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1sYXN0KFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdyksXG4gICRsYXN0LWZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGxhc3QtZmxvdyksXG4gICRtYXJnaW46IDBcbikge1xuICAkdG86IHRvKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvYXQ6IGlmKCRsYXN0LWZsb3cgPT0gdG8sICR0bywgbnVsbCksXG4gICAgbWFyZ2luLSN7JHRvfTogJG1hcmdpbixcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG5cbi8vIEZsb2F0IEZpcnN0XG4vLyAtLS0tLS0tLS0tLVxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQG1peGluIGZsb2F0LWZpcnN0KFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkb3V0cHV0OiAoXG4gICAgbWFyZ2luLSN7ZnJvbSgkZmxvdyl9OiAwLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi5ob21lLXBhZ2V7XG5cbiAgICAuaGVyby1jb250YWluZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaG9tZXBhZ2UvaGVyby5qcGcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0O1xuICAgICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoY292ZXIpO1xuICAgIH1cblxuICAgIC5jb250ZW50e1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgIC8vIC5jb3B5LWNvbnRhaW5lciAtLSBmb3VuZCBpbjogJ191dGlsaXRpZXMuc2NzcydcblxuICAgICAgICAuaW1hZ2V7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm13Yy13aW5lLXJlbGllZixcbiAgICAgICAgLm91ci1zZXJ2aWNlcyxcbiAgICAgICAgLnVwY29taW5nLWV2ZW50c3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBleHRlbmQgLnUtcGFkZGluZy01MDsgLy9mb3VuZCBpbjogJ191dGlsaXRpZXMuc2NzcydcblxuICAgICAgICAgICAgLmNvcHktY29udGFpbmVye1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG5cbiAgICAgICAgICAgICAgICAuY29weXtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY2VudGVyKGJvdGgpOyAvLyB2ZXJ0LCBob3J6LCBib3RoXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gNCBpY29uc1xuICAgICAgICAuaWNvbnN7XG4gICAgICAgICAgICBAaW5jbHVkZSBmdWxsKCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIEBleHRlbmQgLnUtcGFkZGluZy01MDsgLy9mb3VuZCBpbjogJ191dGlsaXRpZXMuc2NzcydcblxuICAgICAgICAgICAgJl9faWNvbntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBnYWxsZXJ5LTQ7IC8vZm91bmQgaW46ICdfc3VzeV9icmVha3BvaW50X3NldHRpbmdzJ1xuXG4gICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uX190aXRsZXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pY29uX19zeW1ib2x7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb25fX3RpdGxle1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbWVkaXVtO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDE1LCAxMjApOyAvLyRmb250LXNpemUsICR0cmFja2luZyAtLSBEbyBub3QgdXNlIHB4IG9yIGVtXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb25fX2NvcHl7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTVweCwgJGVtcGVyb3IsIDI0cHgpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIHN0YWZmIGZhdm9yaXRlc1xuICAgICAgICAuc3RhZmYtZmF2b3JpdGVze1xuICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICBAZXh0ZW5kIC51LXBhZGRpbmctNTA7IC8vZm91bmQgaW46ICdfdXRpbGl0aWVzLnNjc3MnXG5cbiAgICAgICAgICAgIC5jb3B5LWNvbnRhaW5lcntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmdWxsKCk7XG5cbiAgICAgICAgICAgICAgICAuY29weXtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC53aW5le1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMyk7XG4gICAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgZ2FsbGVyeS00OyAvL2ZvdW5kIGluOiAnX3N1c3lfYnJlYWtwb2ludF9zZXR0aW5ncydcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC51LXBhZGRpbmctNDA7IC8vZm91bmQgaW46ICdfdXRpbGl0aWVzLnNjc3MnXG5cbiAgICAgICAgICAgICAgICAvLyByZW1haW5pbmcgc3R5bGVzIGZvdW5kIGluOiAnX3dpbmUuc2NzcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLm91ci1zaG9wLXBhZ2V7XG5cbiAgICAuY29udGVudHtcblxuICAgICAgICAucmVzdWx0c3tcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBleHRlbmQgLnUtcGFkZGluZy00MDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtYnJvd3Nle1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMi41KTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYWx0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi13aW5lc3tcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHB1c2goMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLnN0b3JhZ2Utc2VydmljZXMtcGFnZXtcblxuICAgIC5oZXJvLWNvbnRhaW5lcntcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zdG9yYWdlLXNlcnZpY2VzL2hlcm8uanBnKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDtcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1zaXplKGNvdmVyKTtcbiAgICB9XG5cbiAgICAuY29udGVudHtcblxuICAgICAgICAvLyAuY29weS1jb250YWluZXIgLS0gZm91bmQgaW46ICdfdXRpbGl0aWVzLnNjc3MnXG4gICAgICAgIC8vIC5pbnRybyBhbmQgLmNvbHVtbnMtY29udGFpbmVyIC0tIGZvdW5kIGluOiAnX3NlcnZpY2VzLnNjc3MnXG4gICAgfVxufVxuXG4iLCIud2luZS1zZXJ2aWNlcy1wYWdle1xuXG4gICAgLmhlcm8tY29udGFpbmVye1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3dpbmUtc2VydmljZXMvaGVyby5qcGcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0O1xuICAgICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoY292ZXIpO1xuICAgIH1cblxuICAgIC5jb250ZW50e1xuXG4gICAgICAgIC8vIC5jb3B5LWNvbnRhaW5lciAtLSBmb3VuZCBpbjogJ191dGlsaXRpZXMuc2NzcydcbiAgICAgICAgLy8gLmludHJvIGFuZCAuY29sdW1ucy1jb250YWluZXIgLS0gZm91bmQgaW46ICdfc2VydmljZXMuc2NzcydcbiAgICB9XG59XG5cbiIsIi5uZXdzbGV0dGVyLXBhZ2V7XG5cbiAgICAuaGVyby1jb250YWluZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbmV3c2xldHRlci9oZXJvLmpwZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7XG4gICAgICAgIEBpbmNsdWRlIGJhY2tncm91bmQtc2l6ZShjb3Zlcik7XG4gICAgfVxuXG4gICAgLmNvbnRlbnR7XG5cbiAgICAgICAgLy8gLmNvcHktY29udGFpbmVyIC0tIGZvdW5kIGluOiAnX3V0aWxpdGllcy5zY3NzJ1xuXG4gICAgICAgIC5pbnRyb3tcbiAgICAgICAgICAgIEBleHRlbmQgLnUtcGFkZGluZy03MDsgIC8vZm91bmQgaW46ICdfdXRpbGl0aWVzLnNjc3MnXG4gICAgICAgIH1cblxuICAgICAgICAubmV3c2xldHRlci1zZWFyY2gtY29udGFpbmVye1xuICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICBAZXh0ZW5kIC51LXBhZGRpbmctMTA7ICAvL2ZvdW5kIGluOiAnX3V0aWxpdGllcy5zY3NzJ1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ld3NsZXR0ZXJzLWNvbnRhaW5lcntcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuXG4gICAgICAgICAgICAubmV3c2xldHRlcntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBnYWxsZXJ5LTM7IC8vZm91bmQgaW46ICdfc3VzeV9icmVha3BvaW50X3NldHRpbmdzJ1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG4gICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5uZXdzbGV0dGVyX19saW5re1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9faW1hZ2V7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fdGl0bGV7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1tZWRpdW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTVweCwgJGVtcGVyb3IpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTUsIDEyMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX19kYXRle1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbWVkaXVtO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yKTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDE1LCAxMjApOyAvLyRmb250LXNpemUsICR0cmFja2luZyAtLSBEbyBub3QgdXNlIHB4IG9yIGVtXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fY29weXtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcm9ib3RvLW5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxNXB4LCAkZW1wZXJvciwgMjRweCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX2xpbmt7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1ub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTVweCwgJGVtcGVyb3IsIDI0cHgpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIubmV3c2xldHRlci1kZXRhaWwtcGFnZXtcblxuICAgIC5jb250ZW50e1xuXG4gICAgICAgIC5jb2x1bW5zLWNvbnRhaW5lcntcbiAgICAgICAgICAgIEBpbmNsdWRlIGZ1bGwoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgLm1haW4tY29udGVudHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDcpO1xuXG4gICAgICAgICAgICAgICAgaDF7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJvYm90by1tZWRpdW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc3R5bGUoMTVweCwgJGVtcGVyb3IsIDIwcHgpOyAvLyAkZm9udC1zaXplLCAkY29sb3IsICRsaW5lLWhlaWdodChvcHRpb25hbClcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTUsIDEyMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMnt9XG5cbiAgICAgICAgICAgICAgICBwe1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXN0eWxlKDE1cHgsICRlbXBlcm9yLCAyNHB4KTsgLy8gJGZvbnQtc2l6ZSwgJGNvbG9yLCAkbGluZS1oZWlnaHQob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXNpZGV7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig0KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwdXNoKDEpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGFsdG87XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLmFzaWRlLW1hcmdpbntcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gaW50cm8gc2VjdGlvbiBmb3IgdGhlIGZvcm0gYW5kIGdhbGxlcnlcbiAgICAgICAgICAgICAgICAuaW50cm97XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fdGl0bGV7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByb2JvdG8tbWVkaXVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zdHlsZSgxNXB4LCAkZW1wZXJvciwgMjBweCk7IC8vICRmb250LXNpemUsICRjb2xvciwgJGxpbmUtaGVpZ2h0KG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTUsIDEyMCk7IC8vJGZvbnQtc2l6ZSwgJHRyYWNraW5nIC0tIERvIG5vdCB1c2UgcHggb3IgZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBmb3JtXG4gICAgICAgICAgICAgICAgLmZvcm0tY29udGFpbmVye1xuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5hc2lkZS1tYXJnaW47XG5cbiAgICAgICAgICAgICAgICAgICAgLnNpZ24tdXAtY29udGFpbmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZnVsbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGdhbGxlcnlcbiAgICAgICAgICAgICAgICAuZ2FsbGVyeS1jb250YWluZXJ7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmFzaWRlLW1hcmdpbjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud2luZS1jb250YWluZXJ7XG5cbiAgICAgICAgICAgICAgICAgICAgLndpbmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIl19 */
