.u-mt0{margin-top:0}.u-pt0{padding-top:0}.u-mr0{margin-right:0}.u-pr0{padding-right:0}.u-mb0{margin-bottom:0}.u-pb0{padding-bottom:0}.u-ml0{margin-left:0}.u-pl0{padding-left:0}.u-mt10{margin-top:10px}.u-pt10{padding-top:10px}.u-mr10{margin-right:10px}.u-pr10{padding-right:10px}.u-mb10{margin-bottom:10px}.u-pb10{padding-bottom:10px}.u-ml10{margin-left:10px}.u-pl10{padding-left:10px}.u-mt20{margin-top:20px}.u-pt20{padding-top:20px}.u-mr20{margin-right:20px}.u-pr20{padding-right:20px}.u-mb20{margin-bottom:20px}.u-pb20{padding-bottom:20px}.u-ml20{margin-left:20px}.u-pl20{padding-left:20px}.u-mt30{margin-top:30px}.u-pt30{padding-top:30px}.u-mr30{margin-right:30px}.u-pr30{padding-right:30px}.u-mb30{margin-bottom:30px}.u-pb30{padding-bottom:30px}.u-ml30{margin-left:30px}.u-pl30{padding-left:30px}.u-mt40{margin-top:40px}.u-pt40{padding-top:40px}.u-mr40{margin-right:40px}.u-pr40{padding-right:40px}.u-mb40{margin-bottom:40px}.u-pb40{padding-bottom:40px}.u-ml40{margin-left:40px}.u-pl40{padding-left:40px}.u-mt50{margin-top:50px}.u-pt50{padding-top:50px}.u-mr50{margin-right:50px}.u-pr50{padding-right:50px}.u-mb50{margin-bottom:50px}.u-pb50{padding-bottom:50px}.u-ml50{margin-left:50px}.u-pl50{padding-left:50px}.u-mt60{margin-top:60px}.u-pt60{padding-top:60px}.u-mr60{margin-right:60px}.u-pr60{padding-right:60px}.u-mb60{margin-bottom:60px}.u-pb60{padding-bottom:60px}.u-ml60{margin-left:60px}.u-pl60{padding-left:60px}.u-mt70{margin-top:70px}.u-pt70{padding-top:70px}.u-mr70{margin-right:70px}.u-pr70{padding-right:70px}.u-mb70{margin-bottom:70px}.u-pb70{padding-bottom:70px}.u-ml70{margin-left:70px}.u-pl70{padding-left:70px}.u-mt80{margin-top:80px}.u-pt80{padding-top:80px}.u-mr80{margin-right:80px}.u-pr80{padding-right:80px}.u-mb80{margin-bottom:80px}.u-pb80{padding-bottom:80px}.u-ml80{margin-left:80px}.u-pl80{padding-left:80px}.u-mt90{margin-top:90px}.u-pt90{padding-top:90px}.u-mr90{margin-right:90px}.u-pr90{padding-right:90px}.u-mb90{margin-bottom:90px}.u-pb90{padding-bottom:90px}.u-ml90{margin-left:90px}.u-pl90{padding-left:90px}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:after,.container-fluid:before{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
body,html{font-size:14px}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:sans-serif}body{margin:0;font-family:"DINProCond",helvetica,arial,sans-serif;color:"";background-color:"";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;padding-top:63px}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0;vertical-align:middle}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;border-top-color:#81b241;opacity:.4;margin:30px auto}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0}textarea{overflow:auto;resize:vertical}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}legend,td,th{padding:0}*,::after,::before{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}dl,ol,p,ul{margin-top:0}dl,ol,ul{margin-bottom:0;padding-left:0;list-style:none}a,button,input,select{transition-property:transform,background,background-color,border-color,color;transition-duration:.3s}a{color:"";text-decoration:none}a:hover{color:#81b241;text-decoration:underline}.toogle_menu:focus,a:focus{outline:0}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}[role=button]{cursor:pointer}[hidden]{display:none!important}.js-getImage{position:relative}.js-image{background-size:cover;background-position:center;background-repeat:no-repeat!important;overflow:hidden}.js-image img{visibility:hidden}hr.small{margin:10px auto}hr.u-mtb-0{margin:0}.toogle_menu{display:none;border:0;background-color:#000;padding:10px;width:50px;height:50px;position:fixed;top:65px;left:0;z-index:10001}.toogle_menu #menu{fill:#81b241}@media only screen and (max-width:768px){.toogle_menu{display:block}}.toogle_menu.is-active #menu{fill:#fff}@font-face{font-family:'CondensedBold';src:url(../fonts/CondensedBold.eot);src:url(../fonts/CondensedBold.eot?#iefix) format("embedded-opentype"),url(../fonts/CondensedBold.woff2) format("woff2"),url(../fonts/CondensedBold.woff) format("woff"),url("../fonts/CondensedBold.svg#o CondensedBold") format("svg");font-weight:700;font-style:normal;font-stretch:condensed;unicode-range:U+0020-00FE}@font-face{font-family:'CondensedLight';src:url(../fonts/CondensedLight.eot);src:url(../fonts/CondensedLight.eot?#iefix) format("embedded-opentype"),url(../fonts/CondensedLight.woff2) format("woff2"),url(../fonts/CondensedLight.woff) format("woff"),url("../fonts/CondensedLight.svg#o CondensedLight") format("svg");font-weight:300;font-style:normal;font-stretch:condensed;unicode-range:U+0020-00FE}@font-face{font-family:'DINProCond';src:url(../fonts/DINProCondensedRegular.eot);src:url(../fonts/DINProCondensedRegular.eot?#iefix) format("embedded-opentype"),url(../fonts/DINProCondensedRegular.woff2) format("woff2"),url(../fonts/DINProCondensedRegular.woff) format("woff"),url("../fonts/DINProCondensedRegular.svg#DIN Pro Condensed Regular") format("svg");font-weight:400;font-style:normal;font-stretch:condensed;unicode-range:U+0020-00FE}@font-face{font-family:'ghotic';src:url(../fonts/Regular.eot);src:url(../fonts/Regular.eot?#iefix) format("embedded-opentype"),url(../fonts/Regular.woff2) format("woff2"),url(../fonts/Regular.woff) format("woff"),url("../fonts/Regular.svg#T Regular") format("svg");font-weight:400;font-style:normal;font-stretch:semi-expanded;unicode-range:U+0020-02DC}.o-form{position:relative}.o-form__field{margin-bottom:10px;border:solid 2px #81b241;display:block;width:100%;text-align:left;font-size:0}.o-form__field.no-border{border:0}.o-form__field--area .o-form__label{display:block;width:100%;padding-bottom:0}.o-form__field--area .o-form__area{display:block;width:100%}.o-form__field:last-child{margin-bottom:0}.o-form__label{display:inline-block;font-family:"DINProCond",helvetica,arial,sans-serif;padding:10px;vertical-align:middle;text-align:left;color:#81b241;font-size:20px;width:15%}@media only screen and (max-width:768px){.o-form__label{width:30%}}@media only screen and (max-width:480px){.o-form__label{padding:5px}}.o-form__input{font-size:20px;font-family:"DINProCond",helvetica,arial,sans-serif;padding:10px;display:inline-block;vertical-align:middle;text-align:left;width:85%;border:0}.o-form__area:focus,.o-form__btn:focus,.o-form__input:focus{outline:0}@media only screen and (max-width:768px){.o-form__input{width:70%}}@media only screen and (max-width:480px){.o-form__input{padding:5px}}.o-form__area{width:85%;padding:10px;display:inline-block;vertical-align:middle;min-height:100px;font-size:16px;line-height:20px;border:0}@media only screen and (max-width:768px){.o-form__area{min-height:60px}}.o-form__btn{text-transform:uppercase;font-weight:900;border:0;background-color:#81b241;color:#fff;line-height:100%;padding:15px;font-size:18px}.o-form__btn:hover{background-color:#5a7d2d}.o-form.emailjs-sending:before{content:'Enviado datos';position:absolute;bottom:15px;left:0;font-size:20px;color:#81b241;background-image:url(../img/loader.gif);background-repeat:no-repeat;background-position:left center;padding-left:25px}#status-form{display:block;margin:50px}.o-message{text-align:center;font-size:40px}.o-btn{text-transform:uppercase;font-weight:900;border:0;background-color:#81b241;color:#fff;line-height:100%;padding:15px;font-size:18px}.o-btn:focus{outline:0}.o-btn:hover{background-color:#5a7d2d}.c-footer{background-color:#245003;padding:15px;font-family:"CondensedLight",helvetica,arial,sans-serif;text-align:center;color:#fff;text-transform:uppercase;font-size:22px}.c-footer p{margin-bottom:0}.c-about__display{background-image:url(../img/display-about.jpg);background-position:left top;background-repeat:no-repeat;background-size:cover;min-height:400px;width:100%;height:100%}@media only screen and (max-width:992px){.c-about__display{min-height:340px}}@media only screen and (max-width:768px){.c-about__display{height:200px;min-height:inherit}}.c-about__body{background-color:#8c9a0a;color:#fff;padding:30px;text-transform:uppercase;line-height:26px;font-size:20px;min-height:400px;height:100%}.c-about__body p{margin:0}@media only screen and (min-width:1201px){.c-about__body{font-size:22px;line-height:28px}}@media only screen and (max-width:992px){.c-about__body{font-size:19px;line-height:22px;min-height:340px;padding:15px}}@media only screen and (max-width:768px){.c-about__body{min-height:inherit}}.c-display{height:calc(100vh - 63px);background-image:url(../img/bg-display.jpg);background-repeat:no-repeat;background-attachment:fixed;background-position:center;background-size:cover;width:100%;display:block;position:relative}.c-display__brand{display:block;margin-bottom:100px}@media only screen and (max-width:768px){.c-display__brand img{height:auto;width:90%;max-width:450px}}.c-display__btn{background-color:#fff;border:6px solid #81b241;padding:15px;display:inline-block;line-height:100%;color:#81b241;text-transform:uppercase;font-size:34px}.c-display__btn span{font-weight:300;font-family:"CondensedLight",helvetica,arial,sans-serif;margin-right:4px}.c-display__btn strong,.c-service__title strong{font-weight:700;font-family:"CondensedBold",helvetica,arial,sans-serif}.c-display__btn:hover{background-color:#81b241;text-decoration:none;color:#fff}.c-header{background-color:#81b241;padding:15px;position:fixed;top:0;left:0;width:100%;z-index:998}.btn{background-position:center top;background-size:100% auto;background-repeat:no-repeat;overflow:hidden}.btn.btn--burder{display:block;width:30px;height:21px;margin-top:6px;background-image:url(../img/burger.png)}.btn.btn--icon{display:inline-block;width:30px;height:30px;margin:0 3px}.btn.btn--icon:last-child{margin-right:0}.btn.btn--facebook{background-image:url(../img/facebook.png)}.btn.btn--youtube{background-image:url(../img/youtube.png)}.btn.btn--instagram{background-image:url(../img/instagram.png)}.btn.btn--twitter{background-image:url(../img/twitter.png)}.btn:hover{background-position:center bottom}a.btn{transition-duration:0s}.c-contact{text-align:center;margin-top:50px}.c-contact__data{display:inline-block;text-align:left;color:#fff;padding-left:300px;position:relative;padding-right:200px;padding-bottom:100px;background-image:url(../img/hormigon.png);background-repeat:no-repeat;background-position:right bottom 20px;background-size:auto 200px}@media only screen and (max-width:992px){.c-contact__data{padding:30px 0;text-align:center;background:0 0}}.c-contact__phone,.c-contact__swp,.c-contact__title{font-family:"CondensedBold",helvetica,arial,sans-serif;font-weight:700}.c-contact__title{text-transform:uppercase;font-size:26px}.c-contact__phone,.c-contact__swp{color:#fff;font-size:40px;display:block}.c-contact__phone{margin-bottom:10px}.c-contact__mail:hover,.c-contact__phone:hover{text-decoration:none;color:#245003}.c-contact__swp{padding-left:50px;background-image:url(../img/wsp.png);background-size:auto 100%;background-repeat:no-repeat;background-position:left center}.c-contact__mail{color:#fff;font-size:30px;font-family:"CondensedLight",helvetica,arial,sans-serif;font-weight:300;display:block;margin-bottom:15px}.c-contact__casco{position:absolute;left:-50px;bottom:-30px;width:330px}@media only screen and (max-width:992px){.c-contact__casco{display:none}.c-contact{text-align:center}}@media only screen and (max-width:768px){.c-contact{margin-top:0}}.c-service{background-color:#3d811c;background-image:url(../img/bg-texture.jpg);background-position:center top;background-size:100% auto;background-repeat:no-repeat;padding:30px 30px 0}.c-service__title{font-size:50px;text-transform:uppercase;margin-bottom:50px;color:#fff}.c-service__title span{font-weight:300;margin-right:10px;font-family:"CondensedLight",helvetica,arial,sans-serif}@media only screen and (max-width:768px){.c-service__title{font-size:30px;line-height:34px;text-align:center}.c-service__title span,.c-service__title strong{margin-bottom:15px}}.c-service__list{text-align:center;font-size:0}.c-service__item{padding:25px;width:250px;border-left:solid 1px #fff;position:relative;color:#fff;margin-top:75px;display:inline-block;min-height:220px;vertical-align:top;text-align:left}@media only screen and (min-width:1201px){.c-service__item{width:225px}}@media only screen and (max-width:1200px){.c-service__item{width:180px;padding:15px}}@media only screen and (max-width:992px){.c-service__item{width:50%;min-height:150px;margin-bottom:30px;padding:25px}}@media only screen and (max-width:480px){.c-service__item{width:100%;min-height:inherit}}.c-service__icon{position:absolute;top:-75px;left:0}.c-service__icon img{height:75px;width:auto}.c-service__subtitle{font-size:26px;text-transform:uppercase;margin-bottom:20px;display:block;font-family:"CondensedLight",helvetica,arial,sans-serif}.c-service__text{font-size:18px;line-height:22px;font-weight:700;margin-bottom:0;font-family:"CondensedBold",helvetica,arial,sans-serif}@media only screen and (max-width:992px){.c-service{background-size:auto 100%}}@media only screen and (max-width:768px){.c-service{padding:15px}}.o-list{font-size:30px;font-weight:700;color:#fff;text-transform:uppercase;text-align:center;margin:50px 0}.o-list li{display:inline-block;padding-left:15px;position:relative;font-family:"CondensedBold",helvetica,arial,sans-serif}.o-list li:before{content:'';display:inline-block;margin-top:-4px;margin-right:6px;line-height:20px;vertical-align:middle;width:6px;height:6px;background-color:#fff;border-radius:6px}@media only screen and (max-width:768px){.o-list li{padding-left:0}.o-list{margin:0}}.c-modal{z-index:1000;position:fixed;top:0;left:0;width:100%;height:100vh;text-align:center;display:none}.c-modal__header{text-align:right}.c-modal__title{background-color:#fff;font-family:"CondensedBold",helvetica,arial,sans-serif;border:6px solid #81b241;padding:10px;display:block;margin:10px 0;text-align:center;line-height:100%;color:#81b241;text-transform:uppercase;font-size:30px}.c-modal__title strong,.o-list li{font-weight:700}@media only screen and (max-width:480px){.c-modal__title{font-size:16px}}.c-modal__close{width:22px;height:25px;display:inline-block;background-image:url(../img/close.png);background-repeat:no-repeat;background-position:center top;transition-duration:0s}.c-modal__close:hover{background-position:center bottom}.c-modal__container{width:50%;display:inline-block;max-width:780px;height:auto;background-color:#fff;padding:20px;position:absolute;top:50%;transform:translateY(-50%);margin-left:auto;margin-right:auto;left:0;right:0}@media only screen and (max-width:768px){.c-modal__container{width:80%;padding:15px}}@media only screen and (max-width:480px){.c-modal__container{width:90%}}.c-nav{background-color:#81b241;position:absolute;top:10px;left:0;transform:translateX(-120%);transition:all .3s ease-in-out;z-index:999}.c-nav.is-active{transform:translateX(0%)}.c-nav__items{display:block;position:relative}.c-nav__item,.c-nav__link{display:block}.c-nav__link{color:#fff;text-transform:uppercase;padding:8px 10px;font-size:22px;font-family:"CondensedBold",helvetica,arial,sans-serif;line-height:100%}.c-nav__link:hover{text-decoration:none;background-color:#407b12;color:#fff}.c-nav__close{position:absolute;padding:10px;background-color:#113701;right:-35px;top:0;display:block}.c-nav__close span{width:15px;height:17px;background-image:url(../img/close-menu.png);background-position:center top;background-repeat:no-repeat;display:block}.u-text_center{text-align:center}.u-text_left{text-align:left}.u-text_right{text-align:right}.u-pull_right{float:right}.u-pull_left{float:left}.u-underline{text-decoration:underline}.u-no_gutter{padding-left:0;padding-right:0}.u-vertical_center{display:table-cell;vertical-align:middle}.u-no_margin{margin:0}.u-clearfix{display:block;width:100%;clear:both}.js-image,.u-cover{position:absolute;top:0;left:0;width:100%;height:100%}.u-center{position:absolute;top:50%;transform:translateY(-50%);margin-left:auto;margin-right:auto;left:0;right:0;z-index:2}.u-img_disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.u-img_responsive{display:block;max-width:100%;height:auto}@media only screen and (max-width:991px){.u-hidden_mobile{display:none!important}}@media only screen and (min-width:992px){.u-hidden_desktop{display:none!important}}.u-no_border{border:0!important}.u-layer{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:999;background-color:rgba(0,0,0,.8);display:none}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QvX21peGlucy5zY3NzIiwidmVuZG9ycy9ib290c3RyYXAvbWl4aW5zL19ncmlkLnNjc3MiLCJ2ZW5kb3JzL2Jvb3RzdHJhcC9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCJ2ZW5kb3JzL2Jvb3RzdHJhcC9fZ3JpZC5zY3NzIiwidmVuZG9ycy9ib290c3RyYXAvbWl4aW5zL19ncmlkLWZyYW1ld29yay5zY3NzIiwidmVuZG9ycy9ib290c3RyYXAvX25vcm1hbGl6ZS5zY3NzIiwicHJvamVjdC9fcmVzZXQuc2NzcyIsInZlbmRvcnMvcGFyYW5vaWRhL19tZWRpYS1xdWVyaWVzLnNjc3MiLCJ2ZW5kb3JzL2JlbS1jb25zdHJ1Y3Rvci9fYmVtLWNvbnN0cnVjdG9yLnNjc3MiLCJwcm9qZWN0L19mb250cy5zY3NzIiwicHJvamVjdC9vYmplY3RzL19mb3Jtcy5zY3NzIiwicHJvamVjdC9vYmplY3RzL19tZXNzYWdlLnNjc3MiLCJwcm9qZWN0L29iamVjdHMvX2J0bi5zY3NzIiwicHJvamVjdC9jb21wb25lbnRzL19mb290ZXIuc2NzcyIsInByb2plY3QvY29tcG9uZW50cy9fYWJvdXQuc2NzcyIsInByb2plY3QvY29tcG9uZW50cy9fZGlzcGxheS5zY3NzIiwicHJvamVjdC9jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsInByb2plY3QvY29tcG9uZW50cy9fY29udGFjdC5zY3NzIiwicHJvamVjdC9jb21wb25lbnRzL19zZXJ2aWNlLnNjc3MiLCJwcm9qZWN0L2NvbXBvbmVudHMvX21vZGFsLnNjc3MiLCJwcm9qZWN0L2NvbXBvbmVudHMvX25hdi5zY3NzIiwicHJvamVjdC9fdXRpbGl0aWVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJFLE0sQ0FDQyxZLENBQ0EsTSxDQUVBLGEsQ0FKRCxNLENBQ0MsYyxDQUNBLE0sQ0FFQSxlLENBSkQsTSxDQUNDLGUsQ0FDQSxNLENBRUEsZ0IsQ0FKRCxNLENBQ0MsYSxDQUNBLE0sQ0FFQSxjLENBSkQsTyxDQUNDLGUsQ0FDQSxPLENBRUEsZ0IsQ0FKRCxPLENBQ0MsaUIsQ0FDQSxPLENBRUEsa0IsQ0FKRCxPLENBQ0Msa0IsQ0FDQSxPLENBRUEsbUIsQ0FKRCxPLENBQ0MsZ0IsQ0FDQSxPLENBRUEsaUIsQ0FKRCxPLENBQ0MsZSxDQUNBLE8sQ0FFQSxnQixDQUpELE8sQ0FDQyxpQixDQUNBLE8sQ0FFQSxrQixDQUpELE8sQ0FDQyxrQixDQUNBLE8sQ0FFQSxtQixDQUpELE8sQ0FDQyxnQixDQUNBLE8sQ0FFQSxpQixDQUpELE8sQ0FDQyxlLENBQ0EsTyxDQUVBLGdCLENBSkQsTyxDQUNDLGlCLENBQ0EsTyxDQUVBLGtCLENBSkQsTyxDQUNDLGtCLENBQ0EsTyxDQUVBLG1CLENBSkQsTyxDQUNDLGdCLENBQ0EsTyxDQUVBLGlCLENBSkQsTyxDQUNDLGUsQ0FDQSxPLENBRUEsZ0IsQ0FKRCxPLENBQ0MsaUIsQ0FDQSxPLENBRUEsa0IsQ0FKRCxPLENBQ0Msa0IsQ0FDQSxPLENBRUEsbUIsQ0FKRCxPLENBQ0MsZ0IsQ0FDQSxPLENBRUEsaUIsQ0FKRCxPLENBQ0MsZSxDQUNBLE8sQ0FFQSxnQixDQUpELE8sQ0FDQyxpQixDQUNBLE8sQ0FFQSxrQixDQUpELE8sQ0FDQyxrQixDQUNBLE8sQ0FFQSxtQixDQUpELE8sQ0FDQyxnQixDQUNBLE8sQ0FFQSxpQixDQUpELE8sQ0FDQyxlLENBQ0EsTyxDQUVBLGdCLENBSkQsTyxDQUNDLGlCLENBQ0EsTyxDQUVBLGtCLENBSkQsTyxDQUNDLGtCLENBQ0EsTyxDQUVBLG1CLENBSkQsTyxDQUNDLGdCLENBQ0EsTyxDQUVBLGlCLENBSkQsTyxDQUNDLGUsQ0FDQSxPLENBRUEsZ0IsQ0FKRCxPLENBQ0MsaUIsQ0FDQSxPLENBRUEsa0IsQ0FKRCxPLENBQ0Msa0IsQ0FDQSxPLENBRUEsbUIsQ0FKRCxPLENBQ0MsZ0IsQ0FDQSxPLENBRUEsaUIsQ0FKRCxPLENBQ0MsZSxDQUNBLE8sQ0FFQSxnQixDQUpELE8sQ0FDQyxpQixDQUNBLE8sQ0FFQSxrQixDQUpELE8sQ0FDQyxrQixDQUNBLE8sQ0FFQSxtQixDQUpELE8sQ0FDQyxnQixDQUNBLE8sQ0FFQSxpQixDQUpELE8sQ0FDQyxlLENBQ0EsTyxDQUVBLGdCLENBSkQsTyxDQUNDLGlCLENBQ0EsTyxDQUVBLGtCLENBSkQsTyxDQUNDLGtCLENBQ0EsTyxDQUVBLG1CLENBSkQsTyxDQUNDLGdCLENBQ0EsTyxDQUVBLGlCLENBQ0EsVSxDQzNCRCxpQixDQUNBLGdCLENBQ0EsaUIsQ0FDQSxrQixDQ0lBLGdCLENBQUEsaUIsQ0FFRSxXLENBQ0EsYSxDQUNELGdCLENBRUMsVSxDQUNELHlCQ1hILFUsQ0FPSSxhLEFBRUYsMEJBVEYsVSxDQVVJLGNBVUosZ0IsQ0Z2QkUsaUIsQ0FDQSxnQixDQUNBLGlCLENBQ0Esa0IsQ0NJQSxzQixDQUFBLHVCLENBRUUsVyxDQUNBLGEsQ0FDRCxzQixDQUVDLFUsQ0FDRCxJLENETEQsaUIsQ0FDQSxrQixDQ0hBLFUsQ0FBQSxXLENBRUUsVyxDQUNBLGEsQ0FDRCxVLENBRUMsVSxDQUNELFMsQ0FBQSxVLENBQUEsVSxDQUFBLFUsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxVLENBQUEsVSxDQUFBLFUsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxVLENBQUEsVSxDQUFBLFUsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxVLENBQUEsVSxDQUFBLFUsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDRVRDLGlCLENBRUEsYyxDQUVBLGlCLENBQ0Esa0IsQ0FDRCxTLENBQUEsVSxDQUFBLFUsQ0FBQSxVLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FVQyxVLENBQ0QsUyxDQU9HLGMsQ0FERixTLENBQ0UsZSxDQURGLFMsQ0FDRSxTLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsZSxDQURGLFMsQ0FDRSxTLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsZSxDQURGLFMsQ0FDRSxTLENBREYsVSxDQUNFLGUsQ0FERixVLENBQ0UsZSxDQURGLFUsQ0FDRSxVLENBQ0QsYyxDQW1CQyxVLENBTkYsYyxDQUNFLGMsQ0FERixjLENBQ0UsZSxDQURGLGMsQ0FDRSxTLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsZSxDQURGLGMsQ0FDRSxTLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsZSxDQURGLGMsQ0FDRSxTLENBREYsZSxDQUNFLGUsQ0FERixlLENBQ0UsZSxDQURGLGUsQ0FDRSxVLENBTkYsYyxDQUNFLFMsQ0FORixjLENBQ0UsYSxDQURGLGMsQ0FDRSxjLENBREYsYyxDQUNFLFEsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxjLENBREYsYyxDQUNFLFEsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxjLENBREYsYyxDQUNFLFEsQ0FERixlLENBQ0UsYyxDQURGLGUsQ0FDRSxjLENBREYsZSxDQUNFLFMsQ0FDRCxnQixDQW1CQyxhLENBREYsZ0IsQ0FDRSxvQixDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLGUsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UsZSxDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxlLENBREYsaUIsQ0FDRSxxQixDQURGLGlCLENBQ0UscUIsQ0FERixpQixDQUNFLGdCLENBQ0QseUJBbkNILFMsQ0FBQSxVLENBQUEsVSxDQUFBLFUsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUNFLFUsQ0FDRCxTLENBT0csYyxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLFMsQ0FERixTLENBQ0UsZSxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLFMsQ0FERixTLENBQ0UsZSxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLFMsQ0FERixVLENBQ0UsZSxDQURGLFUsQ0FDRSxlLENBREYsVSxDQUNFLFUsQ0FDRCxjLENBbUJDLFUsQ0FORixjLENBQ0UsYyxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLFMsQ0FERixjLENBQ0UsZSxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLFMsQ0FERixjLENBQ0UsZSxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLFMsQ0FERixlLENBQ0UsZSxDQURGLGUsQ0FDRSxlLENBREYsZSxDQUNFLFUsQ0FORixjLENBQ0UsUyxDQU5GLGMsQ0FDRSxhLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsUSxDQURGLGMsQ0FDRSxjLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsUSxDQURGLGMsQ0FDRSxjLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsUSxDQURGLGUsQ0FDRSxjLENBREYsZSxDQUNFLGMsQ0FERixlLENBQ0UsUyxDQUNELGdCLENBbUJDLGEsQ0FERixnQixDQUNFLG9CLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UsZSxDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxlLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLGUsQ0FERixpQixDQUNFLHFCLENBREYsaUIsQ0FDRSxxQixDQURGLGlCLENBQ0Usa0IsQURZTix5QkM5Q0UsUyxDQUFBLFUsQ0FBQSxVLENBQUEsVSxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQ0UsVSxDQUNELFMsQ0FPRyxjLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFUsQ0FDRSxlLENBREYsVSxDQUNFLGUsQ0FERixVLENBQ0UsVSxDQUNELGMsQ0FtQkMsVSxDQU5GLGMsQ0FDRSxjLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGUsQ0FDRSxlLENBREYsZSxDQUNFLGUsQ0FERixlLENBQ0UsVSxDQU5GLGMsQ0FDRSxTLENBTkYsYyxDQUNFLGEsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsZSxDQUNFLGMsQ0FERixlLENBQ0UsYyxDQURGLGUsQ0FDRSxTLENBQ0QsZ0IsQ0FtQkMsYSxDQURGLGdCLENBQ0Usb0IsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxlLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLGUsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UsZSxDQURGLGlCLENBQ0UscUIsQ0FERixpQixDQUNFLHFCLENBREYsaUIsQ0FDRSxrQixBRHFCTiwwQkN2REUsUyxDQUFBLFUsQ0FBQSxVLENBQUEsVSxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQUEsUyxDQUFBLFMsQ0FBQSxTLENBQ0UsVSxDQUNELFMsQ0FPRyxjLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFMsQ0FDRSxlLENBREYsUyxDQUNFLGUsQ0FERixTLENBQ0UsUyxDQURGLFUsQ0FDRSxlLENBREYsVSxDQUNFLGUsQ0FERixVLENBQ0UsVSxDQUNELGMsQ0FtQkMsVSxDQU5GLGMsQ0FDRSxjLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGMsQ0FDRSxlLENBREYsYyxDQUNFLGUsQ0FERixjLENBQ0UsUyxDQURGLGUsQ0FDRSxlLENBREYsZSxDQUNFLGUsQ0FERixlLENBQ0UsVSxDQU5GLGMsQ0FDRSxTLENBTkYsYyxDQUNFLGEsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsYyxDQUNFLGMsQ0FERixjLENBQ0UsYyxDQURGLGMsQ0FDRSxRLENBREYsZSxDQUNFLGMsQ0FERixlLENBQ0UsYyxDQURGLGUsQ0FDRSxTLENBQ0QsZ0IsQ0FtQkMsYSxDQURGLGdCLENBQ0Usb0IsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxlLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UscUIsQ0FERixnQixDQUNFLGUsQ0FERixnQixDQUNFLHFCLENBREYsZ0IsQ0FDRSxxQixDQURGLGdCLENBQ0UsZSxDQURGLGlCLENBQ0UscUIsQ0FERixpQixDQUNFLHFCLENBREYsaUIsQ0FDRSxrQjs7QUNoREwsSSxDQVoyRSxJLENDaUIzRSxjLENEakIyRSxJLENBVTFFLHlCLENBQ0EsNkIsQ0NWRCxxQixDQVdBLHVDLENESEMsc0IsQ0FHRCxJLENBT0MsUSxDQ0hELG1ELENBRUEsUSxDQUNBLG1CLENBQ0Esa0MsQ0FDQSxpQyxDQUNBLGlCLENBQ0EsZ0IsQ0RIQSxPLENBQUEsSyxDQUFBLE8sQ0FBQSxVLENBQUEsTSxDQUFBLE0sQ0FBQSxNLENBQUEsTSxDQUFBLEksQ0FBQSxJLENBQUEsRyxDQUFBLE8sQ0FBQSxPLENBeUJDLGEsQ0FDRCxLLENBQUEsTSxDQUFBLFEsQ0FBQSxLLENBV0Msb0IsQ0FDQSx1QixDQUNELFVBQUEsVyxDQVFDLFksQ0FDQSxRLENBQ0QsUSxDQVNDLFksQ0FDRCxDLENBVUMsNEIsQ0FDRCxRLENBQUEsTyxDQVNDLFMsQ0FDRCxXLENBVUMsd0IsQ0FDRCxDLENBQUEsTSxDQVFDLGUsQ0FDRCxHLENBT0MsaUIsQ0FDRCxFLENBUUMsYSxDQUNBLGMsQ0FDRCxJLENBT0MsZSxDQUNBLFUsQ0FDRCxLLENBT0MsYSxDQUNELEcsQ0FBQSxHLENBUUMsYSxDQUNBLGEsQ0FDQSxpQixDQUNBLHVCLENBQ0QsRyxDQUdDLFMsQ0FDRCxHLENBR0MsYSxDQUNELEcsQ0FVQyxRLENDcEhELHFCLENEcUhBLFFBQUEsTSxDQU9DLGUsQ0FDRCxNLENBVUMsZSxDQUNELEUsQ0FPQyxzQixDQUNBLFEsQ0NyR0Qsd0IsQ0FDQSxVLENBQ0EsZ0IsQ0RvR0EsRyxDQU9DLGEsQ0FDRCxJLENBQUEsRyxDQVJBLEcsQ0FRQSxJLENBVUMsK0IsQ0FDQSxhLENBQ0QsTSxDQUFBLEssQ0FBQSxRLENBQUEsTSxDQUFBLFEsQ0FzQkMsYSxDQUNBLFksQ0FDQSxRLENBQ0QsTSxDQU9DLGdCLENBUEQsTSxDQVFBLE0sQ0FXQyxtQixDQW5CRCxNLENBb0JBLHVCLENBQUEsaUIsQ0FBQSxrQixDQWNDLHlCLENBQ0EsYyxDQUNELGdCLENBQUEsb0IsQ0FRQyxjLENBQ0Qsd0IsQ0FBQSx1QixDQVFDLFEsQ0FDQSxTLENBQ0QsSyxDQVFDLGtCLENBQ0Qsb0IsQ0FBQSxpQixDQVlDLHFCLENBQ0EsUyxDQUNELDZDLENBQUEsNkMsQ0FVQyxXLENBQ0Qsa0IsQ0FRQyw0QixDQUNBLHNCLENBQ0QsZ0QsQ0FBQSw2QyxDQVVDLHVCLENBQ0QsUSxDQU9DLHVCLENBQ0EsWSxDQUNBLDBCLENBQ0QsTSxDQVFDLFEsQ0FFRCxRLENBT0MsYSxDQ3ZWRCxlLENEd1ZBLFEsQ0FRQyxlLENBQ0QsSyxDQVVDLHdCLENBQ0EsZ0IsQ0F0Q0QsTSxDQXVDQSxFLENBQUEsRSxDQUlDLFMsQ0NwYUQsQyxDQUFBLE8sQ0FBQSxRLENBS0EscUIsQ0FpQkEsRSxDQUFBLEUsQ0FBQSxFLENBQUEsRSxDQUFBLEUsQ0FBQSxFLENBR0EsWSxDQUNBLGUsQ0FPQSxFLENBQUEsRSxDQUxBLEMsQ0FLQSxFLENBRkEsWSxDQUVBLEUsQ0FBQSxFLENBQUEsRSxDQUlBLGUsQ0FDQSxjLENBQ0EsZSxDQUNBLEMsQ0FBQSxNLENBQUEsSyxDQUFBLE0sQ0FNQSw0RSxDQUNBLHVCLENEdUNELEMsQ0MvQkMsUSxDQUNBLG9CLENBRkQsTyxDQUlFLGEsQ0FDQSx5QixDQThERixrQixDQW5FQSxPLENBUUUsUyxDQU1ELGEsQ0FBQSxDLENBQUEsSSxDQUFBLE0sQ0FBQSxLLENBQUEsSyxDQUFBLE0sQ0FBQSxPLENBQUEsUSxDQVdBLDZCLENBQUEseUIsQ0FDQSxhLENBR0EsYyxDQUNBLFEsQ0FHQSxzQixDQUNBLFksQ0FHQSxpQixDQUNBLFMsQ0FFQSxxQixDQUNBLDBCLENBQ0EscUMsQ0FDQSxlLENBSkQsYSxDQU9FLGlCLENBU0YsUSxDQUtFLGdCLENBTEYsVSxDQVFFLFEsQ0FDQSxZLENBSUQsWSxDQUNBLFEsQ0FDQSxxQixDQUNBLFksQ0FDQSxVLENBQ0EsVyxDQUNBLGMsQ0FDQSxRLENBQ0EsTSxDQUNBLGEsQ0FWRCxrQixDQVlFLFksQ0MzR0EseUNEK0ZGLFksQ0FlRSxlRTJqQlUsNEIsQ0Z2akJULFMsQ0FLRCxXR2xKRCwyQixDQUNBLG1DLENBQ0Esd08sQ0FJQSxlLENBQ0EsaUIsQ0FDQSxzQixDQUNBLDBCLEFBR0QsV0FDQyw0QixDQUNBLG9DLENBQ0EsNk8sQ0FJQSxlLENBQ0EsaUIsQ0FDQSxzQixDQUNBLDBCLEFBR0QsV0FDSSx3QixDQUNBLDRDLENBQ0gsc1IsQ0FJRyxlLENBQ0EsaUIsQ0FDQSxzQixDQUNBLDBCLEFBSUosV0FDSSxvQixDQUNBLDZCLENBQ0gsME0sQ0FJRyxlLENBQ0EsaUIsQ0FDQSwwQixDQUNBLDBCRHNXUSxPLENFdlpYLGlCLENGeVpJLGMsQ0V2Wkgsa0IsQ0FDQSx3QixDQUNBLGEsQ0FDQSxVLENBQ0EsZSxDQUNBLFcsQ0ZrZVUsd0IsQ0VoZVQsUSxDRndoQlMsbUMsQ0VwaEJSLGEsQ0FDQSxVLENBQ0EsZ0IsQ0ZraEJRLGtDLENFL2dCUixhLENBQ0EsVSxDRnNkUSx5QixDRWxkVCxlLENGa2RTLGMsQ0U5Y1Ysb0IsQ0FDQSxtRCxDQUNBLFksQ0FDQSxxQixDQUNBLGUsQ0FDQSxhLENBQ0EsYyxDQUNBLFMsQ0Z5Y0cseUNBRk8sYyxDRXJjVCxXLEFIVEQseUNDOGNVLGMsQ0VsY1QsYUZrY1MsYyxDRTliVixjLENBQ0EsbUQsQ0FDQSxZLENBQ0Esb0IsQ0FDQSxxQixDQUNBLGUsQ0FDQSxTLENBQ0EsUSxDRnViVSxtQixDQUFBLGtCLENBQUEsb0IsQ0VyYlQsUyxDSHpCRCx5Q0M4Y1UsYyxDRWxiVCxXLEFINUJELHlDQzhjVSxjLENFL2FULGFGK2FTLGEsQ0UzYVYsUyxDQUNBLFksQ0FDQSxvQixDQUNBLHFCLENBQ0EsZ0IsQ0FDQSxjLENBQ0EsZ0IsQ0FDQSxRLENIMUNBLHlDQzhjVSxhLENFL1pULGlCRitaUyxZLENFM1pWLHdCLENBQ0EsZSxDQUNBLFEsQ0FDQSx3QixDQUNBLFUsQ0FDQSxnQixDQUNBLFksQ0FDQSxjLENGb1pVLGtCLENFL1lULHdCLENGNlRTLDhCLENFeFRULHVCLENBQ0EsaUIsQ0FDQSxXLENBQ0EsTSxDQUNBLGMsQ0FDQSxhLENBQ0EsdUMsQ0FDQSwyQixDQUNBLCtCLENBQ0EsaUIsQ0FDQSxZLENDekdGLGEsQ0FDQSxXLENIc1pXLFUsQ0duWlgsaUIsQ0FDQSxjLENIa1pXLE0sQ0l2Wlgsd0IsQ0FDQSxlLENBQ0EsUSxDQUNBLHdCLENBQ0EsVSxDQUNBLGdCLENBQ0EsWSxDQUNBLGMsQ0pnWlcsWSxDSTlZVixTLENKOFlVLFksQ0kzWVYsd0IsQ0oyWVUsUyxDS3ZaWCx3QixDQUNBLFksQ0FDQSx1RCxDQUNBLGlCLENBQ0EsVSxDQUNBLHdCLENBQ0EsYyxDTGlaVyxXLENLL1lWLGUsQ0xpZVUsaUIsQ014ZVYsOEMsQ0FDQSw0QixDQUNBLDJCLENBQ0EscUIsQ0FDQSxnQixDQUNBLFUsQ0FDQSxXLENOb2VHLHlDQUZPLGlCLENNaGVULGtCLEFQa0JELHlDQzhjVSxpQixDTTdkVCxZLENBQ0Esb0JONGRTLGMsQ012ZFYsd0IsQ0FDQSxVLENBQ0EsWSxDQUNBLHdCLENBQ0EsZ0IsQ0FDQSxjLENBQ0EsZ0IsQ0FDQSxXLENOZ2RVLGdCLENNOWNULFEsQ1BBRCwwQ0M4Y1UsYyxDTTNjVCxjLENBQ0Esa0IsQVBKRCx5Q0M4Y1UsYyxDTXZjVCxjLENBQ0EsZ0IsQ0FDQSxnQixDQUNBLGMsQVBWRCx5Q0M4Y1UsYyxDTWpjVCxvQk4rV1MsVSxDT3ZaWCx5QixDQUNBLDJDLENBQ0EsMkIsQ0FDQSwyQixDQUNBLDBCLENBQ0EscUIsQ0FDQSxVLENBQ0EsYSxDQUNBLGlCLENQaVpJLGlCLENPL1lILGEsQ0FDQSxtQixDUGdlRyx5Q0FGTyxxQixDTzNkUixXLENBQ0EsUyxDQUNBLGlCUHlkUSxlLENPcGRWLHFCLENBQ0Esd0IsQ0FDQSxZLENBQ0Esb0IsQ0FDQSxnQixDQUNBLGEsQ0FDQSx3QixDQUNBLGMsQ1A2Y1Usb0IsQ08zY1QsZSxDQUNBLHVELENBQ0EsZ0IsQ1B5Y1Msc0IsQ0FBQSx3QixDT3RjVCxlLENBQ0Esc0QsQ1BxY1MscUIsQ09sY1Qsd0IsQ0FDQSxvQixDQUNBLFUsQ1A4V1MsUyxDUXZaWCx3QixDQUNBLFksQ0FDQSxjLENBQ0EsSyxDQUNBLE0sQ0FDQSxVLENBQ0EsVyxDUm1aSSxJLENRcFhKLDhCLENBQ0EseUIsQ0FDQSwyQixDQUNBLGUsQ0FoQ0QsZ0IsQ0FFRSxhLENBQ0EsVSxDQUNBLFcsQ0FDQSxjLENBQ0EsdUMsQ0FORixjLENBU0Usb0IsQ0FDQSxVLENBQ0EsVyxDQUNBLFksQ0FaRix5QixDQWNHLGMsQ0FkSCxrQixDQWtCRSx5QyxDQWxCRixpQixDQXFCRSx3QyxDQXJCRixtQixDQXdCRSwwQyxDQXhCRixpQixDQTJCRSx3QyxDQTNCRixVLENBa0NFLGlDLENBQ0EsSyxDQUVJLHNCLENSMFdNLFUsQ1N2WlgsaUIsQ0FDQSxlLENUd1pJLGdCLENTdFpILG9CLENBQ0EsZSxDQUNBLFUsQ0FDQSxrQixDQUNBLGlCLENBQ0EsbUIsQ0FDQSxvQixDQUNBLHlDLENBQ0EsMkIsQ0FDQSxxQyxDQUNBLDBCLENUOGRHLHlDQUZPLGdCLENTMWRULGMsQ0FDQSxpQixDQUNBLGdCVHdkUyxpQixDQUFBLGUsQ0FBQSxpQixDU2hjVixzRCxDQUNBLGUsQ1QrYlUsaUIsQ1NqZFYsd0IsQ0FIQSxjLENUb2RVLGlCLENBQUEsZSxDU2xjVixVLENBQ0EsYyxDQUdBLGEsQ1Q4YlUsaUIsQ1N6Y1Ysa0IsQ1R5Y1Usc0IsQ0FBQSx1QixDU3ZjVCxvQixDQUNBLGEsQ1RzY1MsZSxDUzdiVixpQixDQUNBLG9DLENBQ0EseUIsQ0FDQSwyQixDQUNBLCtCLENUeWJVLGdCLENTdGJWLFUsQ0FDQSxjLENBQ0EsdUQsQ0FDQSxlLENBQ0EsYSxDQUNBLGtCLENUaWJVLGlCLENTMWFWLGlCLENBQ0EsVSxDQUNBLFksQ0FDQSxXLENUeWFHLHlDQUZPLGlCLENTcmFULFksQ1RtVlMsVSxDUy9VVixtQixBVjdDQSx5Q0M0WFUsVSxDUzVVVixjVDRVVSxVLENVdlpYLHdCLENBQ0EsMkMsQ0FDQSw4QixDQUNBLHlCLENBQ0EsMkIsQ0FDQSxtQixDVm9aSSxpQixDVWxaSCxjLENBQ0Esd0IsQ0FDQSxrQixDQUNBLFUsQ1YrZFUsc0IsQ1U3ZFQsZSxDQUNBLGlCLENBQ0EsdUQsQ1hhRCx5Q0M4Y1UsaUIsQ1VwZFQsYyxDQUNBLGdCLENBQ0EsaUIsQ1ZrZFMsc0IsQ0FBQSx3QixDVS9jUixvQlYrY1EsZ0IsQ1UxY1YsaUIsQ0FDQSxXLENWeWNVLGdCLENVdGNWLFksQ0FDQSxXLENBQ0EsMEIsQ0FDQSxpQixDQUNBLFUsQ0FDQSxlLENBQ0Esb0IsQ0FDQSxnQixDQUNBLGtCLENBQ0EsZSxDVitiRywwQ0FGTyxnQixDVTNiVCxhLEFYbkJELDBDQzhjVSxnQixDVXhiVCxXLENBQ0EsYyxBWHZCRCx5Q0M4Y1UsZ0IsQ1VwYlQsUyxDQUNBLGdCLENBQ0Esa0IsQ0FDQSxjLEFYN0JELHlDQzhjVSxnQixDVTlhVCxVLENBQ0Esb0JWNmFTLGdCLENVemFWLGlCLENBQ0EsUyxDQUNBLE0sQ1Z1YVUsb0IsQ1VyYVQsVyxDQUNBLFUsQ1ZvYVMsb0IsQ1VoYVYsYyxDQUNBLHdCLENBQ0Esa0IsQ0FDQSxhLENBQ0EsdUQsQ1Y0WlUsZ0IsQ1V6WlYsYyxDQUNBLGdCLENBQ0EsZSxDQUNBLGUsQ0FDQSxzRCxDVnVaRyx5Q0FwRk8sVSxDVWhVViwyQixBWDVEQSx5Q0M0WFUsVSxDVTdUVixjVjZUVSxPLENVeFRYLGMsQ0FDQSxlLENBQ0EsVSxDQUNBLHdCLENBQ0EsaUIsQ0FDQSxhLENWbVRXLFUsQ1VqVFYsb0IsQ0FDQSxpQixDQUNBLGlCLENBQ0Esc0QsQ1Y4U1UsaUIsQ1UzU1QsVSxDQUNBLG9CLENBS0EsZSxDQUNBLGdCLENBQ0EsZ0IsQ0FDQSxxQixDQUNBLFMsQ0FDQSxVLENBQ0EscUIsQ0FDQSxpQixDWDlGRCx5Q0M0WFUsVSxDVTFSVCxjLENWMFJTLE8sQ1V0UlYsVVZzUlUsUSxDV3ZaWCxZLENBQ0EsYyxDQUNBLEssQ0FDQSxNLENBQ0EsVSxDQUNBLFksQ0FDQSxpQixDQUNBLFksQ1hrWkksZ0IsQ1doWkgsZ0IsQ1hnZVUsZSxDVzdkVixxQixDQUNBLHNELENBQ0Esd0IsQ0FDQSxZLENBQ0EsYSxDQUNBLGEsQ0FDQSxpQixDQUNBLGdCLENBQ0EsYSxDQUNBLHdCLENBQ0EsYyxDWG1kVSxzQixDQWxGQSxVLENXL1hULGUsQ1pHRCx5Q0M4Y1UsZSxDVzljVCxnQlg4Y1MsZSxDVzFjVixVLENBQ0EsVyxDQUNBLG9CLENBQ0Esc0MsQ0FDQSwyQixDQUNBLDhCLENBQ0Esc0IsQ1hvY1UscUIsQ1dsY1QsaUMsQ1hrY1MsbUIsQ1c5YlYsUyxDQUNBLG9CLENBQ0EsZSxDQUNBLFcsQ0FDQSxxQixDQUNBLFksQ0FDQSxpQixDQUNBLE8sQ0FDQSwwQixDQUNBLGdCLENBQ0EsaUIsQ0FDQSxNLENBQ0EsTyxDWG9iRyx5Q0FGTyxtQixDV2hiVCxTLENBQ0EsYyxBWi9CRCx5Q0M4Y1UsbUIsQ1c1YVQsV1gwVlMsTSxDWXZaWCx3QixDQUNBLGlCLENBQ0EsUSxDQUNBLE0sQ0FDQSwyQixDQUNBLDhCLENBQ0EsVyxDWm1aSSxnQixDWWpaSCx3QixDWmllVSxhLENZOWRWLGEsQ0FDQSxpQixDWjZkVSxZLENBQUEsWSxDWTFkVixhLENaMGRVLFksQ1l2ZFgsVSxDQUVBLHdCLENBQ0EsZ0IsQ0FDQSxjLENBQ0Esc0QsQ0FDQSxnQixDWmlkVyxrQixDWS9jVCxvQixDQUNBLHdCLENBQ0EsVSxDWjZjUyxhLENZamNWLGlCLENBQ0EsWSxDQUNBLHdCLENBQ0EsVyxDQUNBLEssQ0FDQSxhLENaNGJVLGtCLENZeGNULFUsQ0FDQSxXLENBQ0EsMkMsQ0FDQSw4QixDQUNBLDJCLENBQ0EsYSxDWmlYUyxjLENhdFpYLGlCLENic1pXLFksQ2FuWlYsZSxDYm1aVSxhLENhaFpWLGdCLENiZ1pVLGEsQ2E3WVgsVyxDYjZZVyxZLENhMVlYLFUsQ2IwWVcsWSxDYXZZWCx5QixDYnVZVyxZLENSdlpYLGMsQ0FDQSxlLENRc1pXLGtCLENhaFlYLGtCLENBQ0EscUIsQ2IrWFcsWSxDYTVYWCxRLENiNFhXLFcsQ2F6WFgsYSxDQUNBLFUsQ0FDQSxVLENidVhXLFMsQ0FBQSxRLENhbFhYLGlCLENBQ0EsSyxDQUNBLE0sQ0FDQSxVLENBQ0EsVyxDYjhXVyxTLENhM1dYLGlCLENBQ0EsTyxDQUNBLDBCLENBQ0EsZ0IsQ0FDQSxpQixDQUNBLE0sQ0FDQSxPLENBQ0EsUyxDYm9XVyxlLENSellYLG1CLENBQ0Esd0IsQ0FBQSxxQixDQUFBLG9CLENBQUEsZ0IsQ1F3WVcsaUIsQ2E1VlgsYSxDQUNBLGMsQ0FDQSxXLENiNFZJLHlDQUZPLGdCLENhcFZWLHdCLEFkeENBLHlDQzRYVSxpQixDYS9VVix3QmIrVVUsWSxDYXJVWCxrQixDYnFVVyxRLENhalVYLGMsQ0FDQSxLLENBQ0EsTSxDQUNBLFUsQ0FDQSxZLENBQ0EsVyxDQUNBLCtCLENBQ0EsWSIsImZpbGUiOiJtYWluLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAbWl4aW4gbm8tZ3V0dGVyIHtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRwYWRkaW5nLXJpZ2h0OiAwO1xufVxuQG1peGluIGltZy1yZXNpemUge1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiAxMDAlO1xufVxuQG1peGluIHRyaW0tdGV4dCB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gaW1nLWRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vLyBDcmVhdGUgY2xhc3MgbWFyZ2luIGFuZCBwYWRkaW5nIHNpZGVzIHRvIDEwIGluIDEwXG5AZWFjaCAkbnVtYmVyIGluICRudW1iZXJzIHtcblx0QGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcblx0XHQudS1tI3tudGgoJHNpZGUsIDEpfSN7bnRoKCRudW1iZXIsIDEpfSB7XG5cdFx0XHRtYXJnaW4tI3tudGgoJHNpZGUsIDIpfTogJG51bWJlcitweDtcblx0XHR9XG5cdFx0LnUtcCN7bnRoKCRzaWRlLCAxKX0je250aCgkbnVtYmVyLCAxKX0ge1xuXHRcdFx0cGFkZGluZy0je250aCgkc2lkZSwgMil9OiAkbnVtYmVyK3B4O1xuXHRcdH1cblx0fVxufVxuXG4vLyBUcmlhbmdsZVxuQG1peGluIHRyaWFuZ2xlKCRkaXJlY3Rpb24sICRzaXplOiAxMHB4LCAkY29sb3I6ICRibGFjayl7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBAaWYgKCRkaXJlY3Rpb24gPT0gJ3RvcCcpe1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSAncmlnaHQnKXtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yO1xuICB9XG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09ICdib3R0b20nKXtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gJ2xlZnQnKXtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxufVxuLy8gLmZvbyB7XG4vLyAgICY6YWZ0ZXIge1xuLy8gICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGJvdHRvbSwgMTBweCwgYmx1ZSk7XG4vLyAgIH1cbi8vIH1cblxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG5AbWl4aW4gY29udGFpbmVyLWZpeGVkKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICBmbG9vcigoJGd1dHRlciAvIDIpKTtcbiAgcGFkZGluZy1yaWdodDogY2VpbCgoJGd1dHRlciAvIDIpKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1sZWZ0OiAgY2VpbCgoJGd1dHRlciAvIC0yKSk7XG4gIG1hcmdpbi1yaWdodDogZmxvb3IoKCRndXR0ZXIgLyAtMikpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIGV4dHJhIHNtYWxsIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXhzLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xufVxuQG1peGluIG1ha2UteHMtY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG59XG5AbWl4aW4gbWFrZS14cy1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cbkBtaXhpbiBtYWtlLXhzLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXNtLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2Utc20tY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLXNtLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIG1lZGl1bSBjb2x1bW5zXG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLW1kLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbWQtY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBsYXJnZSBjb2x1bW5zXG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLWxnLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbGctY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8vXG4vLyBHcmlkIHN5c3RlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWZpeGVkO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIC8vIHdpZHRoOiAkY29udGFpbmVyLXNtO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIHdpZHRoOiAkY29udGFpbmVyLW1kO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIHdpZHRoOiAkY29udGFpbmVyLWxnO1xuICB9XG59XG5cblxuLy8gRmx1aWQgY29udGFpbmVyXG4vL1xuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxuLy8gd2lkdGggZm9yIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG5cbi5jb250YWluZXItZmx1aWQge1xuICBAaW5jbHVkZSBjb250YWluZXItZml4ZWQ7XG59XG5cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cblxuLnJvdyB7XG4gIEBpbmNsdWRlIG1ha2Utcm93O1xufVxuXG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbkBpbmNsdWRlIG1ha2UtZ3JpZC1jb2x1bW5zO1xuXG5cbi8vIEV4dHJhIHNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgZXh0cmEgc21hbGwgZGV2aWNlcyBsaWtlXG4vLyBzbWFydHBob25lcy5cblxuQGluY2x1ZGUgbWFrZS1ncmlkKHhzKTtcblxuXG4vLyBTbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXG4vLyB0byB0YWJsZXRzLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkKHNtKTtcbn1cblxuXG4vLyBNZWRpdW0gZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQobWQpO1xufVxuXG5cbi8vIExhcmdlIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGxhcmdlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkKGxnKTtcbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbi8vIFtjb252ZXJ0ZXJdIFRoaXMgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBpbiBMRVNTLCBidXQgU2FzcyBzdXBwb3J0cyByZWFsIGxvb3BzXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGk6IDEsICRsaXN0OiBcIi5jb2wteHMtI3skaX0sIC5jb2wtc20tI3skaX0sIC5jb2wtbWQtI3skaX0sIC5jb2wtbGctI3skaX1cIikge1xuICBAZm9yICRpIGZyb20gKDEgKyAxKSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICRsaXN0OiBcIiN7JGxpc3R9LCAuY29sLXhzLSN7JGl9LCAuY29sLXNtLSN7JGl9LCAuY29sLW1kLSN7JGl9LCAuY29sLWxnLSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cbn1cblxuXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGRlZmluZWQgcmVjdXJzaXZlbHkgaW4gTEVTUywgYnV0IFNhc3Mgc3VwcG9ydHMgcmVhbCBsb29wc1xuQG1peGluIGZsb2F0LWdyaWQtY29sdW1ucygkY2xhc3MsICRpOiAxLCAkbGlzdDogXCIuY29sLSN7JGNsYXNzfS0jeyRpfVwiKSB7XG4gIEBmb3IgJGkgZnJvbSAoMSArIDEpIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJGxpc3Q6IFwiI3skbGlzdH0sIC5jb2wtI3skY2xhc3N9LSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuQG1peGluIGNhbGMtZ3JpZC1jb2x1bW4oJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gIEBpZiAoJHR5cGUgPT0gd2lkdGgpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LSN7JGluZGV4fSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1c2gpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LXB1c2gtI3skaW5kZXh9IHtcbiAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdXNoKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVzaC0wIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gcHVsbCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0jeyRpbmRleH0ge1xuICAgICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdWxsKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0wIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IG9mZnNldCkge1xuICAgIC5jb2wtI3skY2xhc3N9LW9mZnNldC0jeyRpbmRleH0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBkZWZpbmVkIHJlY3Vyc2l2ZWx5IGluIExFU1MsIGJ1dCBTYXNzIHN1cHBvcnRzIHJlYWwgbG9vcHNcbkBtaXhpbiBsb29wLWdyaWQtY29sdW1ucygkY29sdW1ucywgJGNsYXNzLCAkdHlwZSkge1xuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBjYWxjLWdyaWQtY29sdW1uKCRpLCAkY2xhc3MsICR0eXBlKTtcbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuQG1peGluIG1ha2UtZ3JpZCgkY2xhc3MpIHtcbiAgQGluY2x1ZGUgZmxvYXQtZ3JpZC1jb2x1bW5zKCRjbGFzcyk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgd2lkdGgpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1bGwpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1c2gpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIG9mZnNldCk7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8vXG4vLyAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuLy8gMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbi8vICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbi8vXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMVxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbi8vXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8vIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbi8vIGFuZCBGaXJlZm94LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbi8vXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbi8vIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbi8vXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gMVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDJcbn1cblxuLy9cbi8vIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuLy9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuLy8gSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuLy9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4vL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vXG4vLyBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4vLyBhY3RpdmUvaG92ZXIgc3RhdGUuXG4vL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBUZXh0LWxldmVsIHNlbWFudGljc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy9cbi8vIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbi8vIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuLy9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vL1xuLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuLy9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vL1xuLy8gQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4vL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIEdyb3VwaW5nIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbi8vXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4vL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4vLyBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4vL1xuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbi8vIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4vLyBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuLy8gQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuLy9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vXG4vLyAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuLy8gICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4vLyAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4vLyAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuLy8gICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuLy9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvLyAxXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbiAgY3Vyc29yOiBwb2ludGVyOyAvLyAzXG59XG5cbi8vXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuLy9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuLy9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4vLyB0aGUgVUEgc3R5bGVzaGVldC5cbi8vXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLy9cbi8vIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbi8vIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4vL1xuLy8gMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbi8vIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4vLyBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuLy8gZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuLy9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vXG4vLyAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4vLyBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4vLyBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy9cbi8vIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbi8vXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuLy8gMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuLy9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuLy8gTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4vL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4vL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsImh0bWwge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcblx0Zm9udC1zaXplOiRiYXNlX3NpemU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO1xufVxuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6JGZvbnRfYmFzZTtcblx0Zm9udC1zaXplOjE0cHg7XG5cdGNvbG9yOiRjb2xvcl90ZXh0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiRjb2xvcl9iZztcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRwYWRkaW5nLXRvcDo2M3B4O1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0Ly8gbWFyZ2luLWJvdHRvbTogLjVyZW07XG59XG5cbnAge1xuXHRtYXJnaW4tdG9wOiAwO1xuXHQvLyBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG51bCwgb2wsIGRsIHtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG5hLFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3Qge1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGJhY2tncm91bmQsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgY29sb3I7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuXG50ZXh0YXJlYSB7XG5cdHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmEge1xuXHRjb2xvcjokY29sb3JfdGV4dDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHQmOmhvdmVye1xuXHRcdGNvbG9yOiRjb2xvcl9wcmltYXJ5O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6bm9uZTtcblx0fVxufVxuXG5pbWcge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG5cdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5bcm9sZT1cImJ1dHRvblwiXSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuW2hpZGRlbl0ge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5qcy1nZXRJbWFnZXtcblx0cG9zaXRpb246cmVsYXRpdmU7XG59XG4uanMtaW1hZ2V7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRAZXh0ZW5kIC51LWNvdmVyO1xuXHRpbWd7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cdCY6aG92ZXJ7XG5cdFx0Ly8gYW5pbWF0aW9uLWR1cmF0aW9uOjVzO1xuXHRcdC8vIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cdFx0Ly8gYW5pbWF0aW9uLW5hbWU6IGJnTW92ZTtcblx0fVxufVxuXG5ocntcblx0Ym9yZGVyLXRvcC1jb2xvcjokY29sb3JfcHJpbWFyeTtcblx0b3BhY2l0eTouNDtcblx0bWFyZ2luOjMwcHggYXV0bztcblx0Ji5zbWFsbHtcblx0XHRtYXJnaW46MTBweCBhdXRvO1xuXHR9XG5cdCYudS1tdGItMHtcblx0XHRtYXJnaW46MDtcblx0fVxufVxuXG4udG9vZ2xlX21lbnV7XG5cdGRpc3BsYXk6bm9uZTtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiRibGFjaztcblx0cGFkZGluZzoxMHB4O1xuXHR3aWR0aDo1MHB4O1xuXHRoZWlnaHQ6NTBweDtcblx0cG9zaXRpb246Zml4ZWQ7XG5cdHRvcDo2NXB4O1xuXHRsZWZ0OjBweDtcblx0ei1pbmRleDoxMDAwMTtcblx0I21lbnV7XG5cdFx0ZmlsbDokY29sb3JfcHJpbWFyeTtcblx0fVxuXHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0fVxuXHRAaW5jbHVkZSBzdGF0ZSgnYWN0aXZlJykge1xuXHRcdCNtZW51e1xuXHRcdFx0ZmlsbDogJHdoaXRlO1xuXHRcdH1cblx0fVxuXHQmOmZvY3Vze1xuXHRcdG91dGxpbmU6bm9uZTtcblx0fVxufVxuIiwiLy8gIEF1dGhvcjogUmFmYWwgQnJvbWlyc2tpXG4vLyAgd3d3OiBodHRwOi8vcmFmYWxicm9taXJza2kuY29tL1xuLy8gIGdpdGh1YjogaHR0cDovL2dpdGh1Yi5jb20vcGFyYW5vaWRhL3Nhc3MtbWVkaWFxdWVyaWVzXG4vL1xuLy8gIExpY2Vuc2VkIHVuZGVyIGEgTUlUIExpY2Vuc2Vcbi8vXG4vLyAgVmVyc2lvbjpcbi8vICAxLjYuMVxuXG4vLyAtLS0gZ2VuZXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpIHtcbiAgICAkbWVkaWEtdHlwZTogbWFwLWdldCgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgICAkYXJnczogbWFwLXJlbW92ZSgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgfVxuXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkYXJncyB7XG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkZXhwcjogXCIjeyRleHByfSBhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIjtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBzY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBzY3JlZW4oJG1pbiwgJG1heCwgJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICBAaW5jbHVkZSBtcSgkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtYXgtc2NyZWVuKCRtYXgpIHtcbiAgQGluY2x1ZGUgbXEoJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtaW4tc2NyZWVuKCRtaW4pIHtcbiAgQGluY2x1ZGUgbXEoJG1pbi13aWR0aDogJG1pbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBzY3JlZW4taGVpZ2h0KCRtaW4sICRtYXgsICRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbXEoJG1pbi1oZWlnaHQ6ICRtaW4sICRtYXgtaGVpZ2h0OiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtYXgtc2NyZWVuLWhlaWdodCgkbWF4KSB7XG4gIEBpbmNsdWRlIG1xKCRtYXgtaGVpZ2h0OiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1pbi1zY3JlZW4taGVpZ2h0KCRtaW4pIHtcbiAgQGluY2x1ZGUgbXEoJG1pbi1oZWlnaHQ6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaGRwaSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaGRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7cm91bmQoJHJhdGlvKjk2KX1kcGkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaGR0diAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaGR0digkc3RhbmRhcmQ6ICcxMDgwJykge1xuICAkbWluLXdpZHRoOiBmYWxzZTtcbiAgJG1pbi1oZWlnaHQ6IGZhbHNlO1xuXG4gICRzdGFuZGFyZHM6ICgnNzIwcCcsIDEyODBweCwgNzIwcHgpXG4gICAgICAgICAgICAgICgnMTA4MCcsIDE5MjBweCwgMTA4MHB4KVxuICAgICAgICAgICAgICAoJzJLJywgMjA0OHB4LCAxMDgwcHgpXG4gICAgICAgICAgICAgICgnNEsnLCA0MDk2cHgsIDIxNjBweCk7XG5cbiAgQGVhY2ggJHMgaW4gJHN0YW5kYXJkcyB7XG4gICAgQGlmICRzdGFuZGFyZCA9PSBudGgoJHMsIDEpIHtcbiAgICAgICRtaW4td2lkdGg6IG50aCgkcywgMik7XG4gICAgICAkbWluLWhlaWdodDogbnRoKCRzLCAzKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtcShcbiAgICAkbWluLWRldmljZS13aWR0aDogJG1pbi13aWR0aCxcbiAgICAkbWluLWRldmljZS1oZWlnaHQ6ICRtaW4taGVpZ2h0LFxuICAgICRtaW4td2lkdGg6ICRtaW4td2lkdGgsXG4gICAgJG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0XG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGhvbmU0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGhvbmU0KCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogMzIwcHg7XG4gICRtYXg6IDQ4MHB4O1xuICAkcGl4ZWwtcmF0aW86IDI7XG4gICRhc3BlY3QtcmF0aW86ICcyLzMnO1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uLFxuICAgICRkZXZpY2UtYXNwZWN0LXJhdGlvOiAkYXNwZWN0LXJhdGlvLFxuICAgICQtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogJHBpeGVsLXJhdGlvXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGhvbmU1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGhvbmU1KCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogMzIwcHg7XG4gICRtYXg6IDU2OHB4O1xuICAkcGl4ZWwtcmF0aW86IDI7XG4gICRhc3BlY3QtcmF0aW86ICc0MC83MSc7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24sXG4gICAgJGRldmljZS1hc3BlY3QtcmF0aW86ICRhc3BlY3QtcmF0aW8sXG4gICAgJC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAkcGl4ZWwtcmF0aW9cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwaG9uZTYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwaG9uZTYoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAzNzVweDtcbiAgJG1heDogNjY3cHg7XG4gICRwaXhlbC1yYXRpbzogMjtcblxuICBAaW5jbHVkZSBtcShcbiAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbixcbiAgICAkLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86ICRwaXhlbC1yYXRpb1xuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBob25lNiBwbHVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBob25lNi1wbHVzKCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogNDE0cHg7XG4gICRtYXg6IDczNnB4O1xuICAkcGl4ZWwtcmF0aW86IDM7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24sXG4gICAgJC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAkcGl4ZWwtcmF0aW9cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwYWQgKGFsbCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwYWQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiA3NjhweDtcbiAgJG1heDogMTAyNHB4O1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGFkLXJldGluYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGFkLXJldGluYSgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDc2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gICRwaXhlbC1yYXRpbzogMjtcblxuICBAaW5jbHVkZSBtcShcbiAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbixcbiAgICAkLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86ICRwaXhlbC1yYXRpb1xuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gb3JpZW50YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gbGFuZHNjYXBlKCkge1xuICBAaW5jbHVkZSBtcSgkb3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwb3J0cmFpdCgpIHtcbiAgQGluY2x1ZGUgbXEoJG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyAvKiEgc2Fzcy1iZW0tY29uc3RydWN0b3IgLSB2ZXJzaW9uIDogMS4xLjAgLSAyMDE2LTAyLTA3ICovXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBVc2UgbmFtZXNwYWNlZCBjbGFzcyBuYW1lc1xuLy8vIEBwdWJsaWNcbiRiZW0tdXNlLW5hbWVzcGFjZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCZW0gc3R5bGUgZWxlbWVudCBzZXBhcmF0b3Jcbi8vLyBAcHVibGljXG4kYmVtLWVsZW1lbnQtc2VwYXJhdG9yOiAnX18nICFkZWZhdWx0O1xuXG4vLy8gQmVtIHN0eWxlIG1vZGlmaWVyIHNlcGFyYXRvclxuLy8vIEBwdWJsaWNcbiRiZW0tbW9kaWZpZXItc2VwYXJhdG9yOiAnLS0nICFkZWZhdWx0O1xuXG4vLy8gVGhyb3cgZXJyb3JzXG4vLy8gQHB1YmxpY1xuJGJlbS10aHJvdy1lcnJvcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHbG9iYWwgTG9nZ2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gU3RvcmVzIHRoZSB3aG9sZSBCRU0gc3RydWN0dXJlXG4kX2JlbS1sb2c6ICgpICFnbG9iYWw7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb250ZXh0IGxvZ2dlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRhYmxlIG9mIGNvbnRlbnRzOlxuLy8gMS4gU3RvcmUgY3VycmVudCBjb250ZXh0XG4vLyAyLiBDbGVhciBjdXJyZW50IGNvbnRleHRcblxuXG4vLy8gVXNlZCB0byBzdG9yZXMgdGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIGNvbnN0cnVjdGVkXG4vLy8gQHByaXZhdGVcblxuJF9iZW0tY3VycmVudC1jb250ZXh0OiAoKSAhZ2xvYmFsO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAxLiBTdG9yZSBjdXJyZW50IGNvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBTZXRzIHRoZSBjdXJyZW50IG9iamVjdCwgc3RvcmVzIG5hbWUgYW5kIGdlbmVyYXRlZCBzZWxlY3RvclxuXG5AZnVuY3Rpb24gc2V0LWN1cnJlbnQtY29udGV4dCgkb2JqLCAkbmFtZSwgJHNlbGVjdG9yKSB7XG4gICAgJG5ldy1jdXJyZW50OiAoI3skb2JqfTogKG5hbWU6ICRuYW1lLCBzZWxlY3RvcjogJHNlbGVjdG9yKSk7XG4gICAgJF9iZW0tY3VycmVudC1jb250ZXh0OiBtYXAtbWVyZ2UoJF9iZW0tY3VycmVudC1jb250ZXh0LCAkbmV3LWN1cnJlbnQpICFnbG9iYWw7XG5cbiAgICBAcmV0dXJuICRzZWxlY3Rvcjtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gMi4gQ2xlYXIgY3VycmVudCBjb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQ2xlYXJzIHRoZSBjdXJyZW50IG9iamVjdFxuXG5AZnVuY3Rpb24gdW5zZXQtY3VycmVudC1jb250ZXh0KCRvYmopIHtcbiAgICAkbmV3LWN1cnJlbnQ6ICgjeyRvYmp9OiBudWxsKTtcbiAgICAkX2JlbS1jdXJyZW50LWNvbnRleHQ6IG1hcC1tZXJnZSgkX2JlbS1jdXJyZW50LWNvbnRleHQsICRuZXctY3VycmVudCkgIWdsb2JhbDtcblxuICAgIEByZXR1cm4gbnVsbDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJsb2NrIExvZ2dlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEZpbmQgaWYgYSBnaXZlbiAkYmxvY2sgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRibG9jayAtIE5hbWUgb2YgdGhlIGJsb2NrXG5cbkBmdW5jdGlvbiBibG9jay1leGlzdHMoJGJsb2NrKSB7XG4gICAgQHJldHVybiBtYXAtaGFzLWtleSgkX2JlbS1sb2csICRibG9jayk7XG59XG5cbi8vLyBMb2cgdGhlIG5ldyAkYmxvY2tcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJsb2NrIC0gQmxvY2sgbmFtZVxuXG5AZnVuY3Rpb24gX2JlbS1sb2ctYmxvY2soJGJsb2NrKSB7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgYmxvY2sgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkXG4gICAgQGlmIGJsb2NrLWV4aXN0cygkYmxvY2spIHtcbiAgICAgICAgQGlmICRiZW0tdGhyb3ctZXJyb3JzIHtcbiAgICAgICAgICAgIEBlcnJvciAnYCN7JGJsb2NrfWAgYmxvY2sgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkJztcbiAgICAgICAgfVxuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgYSBuZXcgYmxvY2sgbWFwXG4gICAgJG5ldy1ibG9jazogKCRibG9jazogKCdlbGVtZW50cyc6ICgpLCAnbW9kaWZpZXJzJzogKCkpKTtcblxuICAgIC8vIFVwZGF0ZSBiZW0gbG9nIHdpdGggbmV3IGJsb2NrXG4gICAgJF9iZW0tbG9nOiBtYXAtbWVyZ2UoJF9iZW0tbG9nLCAkbmV3LWJsb2NrKSAhZ2xvYmFsO1xuXG4gICAgLy8gRXZlcnl0aGluZyBPS1xuICAgIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVsZW1lbnQgTG9nZ2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gRmluZCBpZiB0aGUgZ2l2ZW4gJGVsZW1lbnRzIGhhdmUgYWxyZWFkeSBiZWVuIGNyZWF0ZWRcbi8vLyBAcGFyYW0ge0FyZ2xpc3QgfCBTdHJpbmd9ICRlbGVtZW50cyAtIEEgc2luZ2xlIG9yIG11bHRpcGxlIGVsZW1lbnQgbmFtZXNcblxuQGZ1bmN0aW9uIGVsZW1lbnQtZXhpc3RzKCRlbGVtZW50cy4uLikge1xuXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGJsb2NrIG5hbWVcbiAgICAvLyBUaGVuIGdldCB0aGUgY3VycmVudCBibG9jayBtYXBcbiAgICAvLyBUaGVuIGdldCB0aGUgY3VycmVudCBibG9jayBlbGVtZW50IG1hcFxuICAgICRjdXJyZW50LWJsb2NrLW5hbWU6IG1hcC1nZXQobWFwLWdldCgkX2JlbS1jdXJyZW50LWNvbnRleHQsICdibG9jaycpLCAnbmFtZScpO1xuICAgICRjdXJyZW50LWJsb2NrOiBtYXAtZ2V0KCRfYmVtLWxvZywgJGN1cnJlbnQtYmxvY2stbmFtZSk7XG4gICAgJGN1cnJlbnQtZWxlbWVudHM6IG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdlbGVtZW50cycpO1xuXG4gICAgQGVhY2ggJGVsZW1lbnQgaW4gJGVsZW1lbnRzIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRjdXJyZW50LWVsZW1lbnRzLCAkZWxlbWVudCkge1xuICAgICAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBmYWxzZTtcbn1cblxuXG4vLy8gTG9nIHRoZSBuZXcgJGVsZW1lbnRzXG4vLy8gQHBhcmFtIHtBcmdsaXN0IHwgU3RyaW5nfSAkZWxlbWVudHMgLSBBIHNpbmdsZSBvciBtdWx0aXBsZSBlbGVtZW50IG5hbWVzXG5cbkBmdW5jdGlvbiBfYmVtLWxvZy1lbGVtZW50KCRlbGVtZW50cy4uLikge1xuXG4gICAgLy8gQ2hlY2sgYW55ICRlbGVtZW50cyBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrXG4gICAgQGlmIGVsZW1lbnQtZXhpc3RzKCRlbGVtZW50cy4uLikge1xuICAgICAgICBAaWYgJGJlbS10aHJvdy1lcnJvcnMge1xuICAgICAgICAgICAgQGVycm9yICdPbmUgb3IgbW9yZSBlbGVtZW50cyBmcm9tIGAje2luc3BlY3QoJGVsZW1lbnRzKX1gIGhhdmUgYWxyZWFkeSBiZWVuIGNyZWF0ZWQnO1xuICAgICAgICB9XG5cbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBGaW5kIHRoZSBjdXJyZW50IGJsb2NrIG5hbWVcbiAgICAvLyBUaGVuIGdldCB0aGUgbWFwIGZvciB0aGUgY3VycmVudCBibG9ja1xuICAgIC8vIFRoZW4gZ2V0IHRoZSBlbGVtZW50IGxpc3RcbiAgICAkY3VycmVudC1ibG9jay1uYW1lOiBtYXAtZ2V0KG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAnYmxvY2snKSwgJ25hbWUnKTtcbiAgICAkY3VycmVudC1ibG9jazogbWFwLWdldCgkX2JlbS1sb2csICRjdXJyZW50LWJsb2NrLW5hbWUpO1xuICAgICRjdXJyZW50LWVsZW1lbnRzOiBtYXAtZ2V0KCRjdXJyZW50LWJsb2NrLCAnZWxlbWVudHMnKTtcblxuICAgIC8vIEZvciBlYWNoIHBvc3NpYmxlIG5hbWUgaW4gJG5hbWVcbiAgICAvLyBDcmVhdGUgYW4gdXBkYXRlZCBibG9jayBtYXBcbiAgICAvLyBBZGQgaXQgdG8gdGhlIGxpc3Qgb2YgZWxlbWVudHNcbiAgICBAZWFjaCAkZWxlbWVudCBpbiAkZWxlbWVudHMge1xuICAgICAgICAkdXBkYXRlZDogKCRlbGVtZW50OiAoJ21vZGlmaWVycyc6ICgpKSk7XG4gICAgICAgICRjdXJyZW50LWVsZW1lbnRzOiBtYXAtbWVyZ2UoJGN1cnJlbnQtZWxlbWVudHMsICR1cGRhdGVkKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGJsb2NrXG4gICAgJHVwZGF0ZWQtYmxvY2s6ICgkY3VycmVudC1ibG9jay1uYW1lOiAoJ2VsZW1lbnRzJzogKCRjdXJyZW50LWVsZW1lbnRzKSwgJ21vZGlmaWVycyc6IG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdtb2RpZmllcnMnKSkpO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsb2dcbiAgICAkX2JlbS1sb2c6IG1hcC1tZXJnZSgkX2JlbS1sb2csICR1cGRhdGVkLWJsb2NrKSAhZ2xvYmFsO1xuXG4gICAgQHJldHVybiB0cnVlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTW9kaWZpZXIgTG9nZ2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gRmluZCBpZiB0aGUgZ2l2ZW4gJG1vZGlmaWVycyBoYXZlIGFscmVhZHkgYmVlbiBjcmVhdGVkXG4vLy8gQHBhcmFtIHtBcmdsaXN0IHwgU3RyaW5nfSAkbW9kaWZpZXJzIC0gQSBzaW5nbGUgb3IgbXVsdGlwbGUgbW9kaWZpZXIgbmFtZXNcblxuQGZ1bmN0aW9uIG1vZGlmaWVyLWV4aXN0cygkbW9kaWZpZXJzLi4uKSB7XG5cbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgYmxvY2sgbmFtZVxuICAgIC8vIFRoZW4gZ2V0IHRoZSBjdXJyZW50IGJsb2NrIG1hcFxuICAgIC8vIFRoZW4gZ2V0IHRoZSBjdXJyZW50IGJsb2NrIG1vZGlmaWVycyBtYXBcbiAgICAkY3VycmVudC1ibG9jay1uYW1lOiBtYXAtZ2V0KG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAnYmxvY2snKSwgJ25hbWUnKTtcbiAgICAkY3VycmVudC1ibG9jazogbWFwLWdldCgkX2JlbS1sb2csICRjdXJyZW50LWJsb2NrLW5hbWUpO1xuICAgICRjdXJyZW50LW1vZGlmaWVyczogbWFwLWdldCgkY3VycmVudC1ibG9jaywgJ21vZGlmaWVycycpO1xuXG4gICAgQGVhY2ggJG1vZGlmaWVyIGluICRtb2RpZmllcnMge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGN1cnJlbnQtbW9kaWZpZXJzLCAkbW9kaWZpZXIpIHtcbiAgICAgICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLyBMb2cgdGhlIG5ldyAkbW9kaWZpZXJzXG4vLy8gQHBhcmFtIHtBcmdsaXN0IHwgU3RyaW5nfSAkbW9kaWZpZXJzIC0gQSBzaW5nbGUgb3IgbXVsdGlwbGUgbW9kaWZpZXIgbmFtZXNcblxuXG5AZnVuY3Rpb24gX2JlbS1sb2ctbW9kaWZpZXIoJG1vZGlmaWVycy4uLikge1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIG1vZGlmaWVyIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgYmxvY2sgb3IgZWxlbWVudFxuICAgIC8vIEBpZiBtb2RpZmllci1leGlzdHMoJG1vZGlmaWVycy4uLikge1xuICAgIC8vICAgICBAaWYgJGJlbS10aHJvdy1lcnJvcnMge1xuICAgIC8vICAgICAgICAgQGVycm9yICdPbmUgb3IgbW9yZSBlbGVtZW50cyBmcm9tIGAje2luc3BlY3QoJG1vZGlmaWVycyl9YCBoYXZlIGFscmVhZHkgYmVlbiBjcmVhdGVkJztcbiAgICAvLyAgICAgfVxuXG4gICAgLy8gICAgIEByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgLy8gRmluZCB0aGUgY3VycmVudCBibG9jayBuYW1lXG4gICAgJGN1cnJlbnQtYmxvY2stbmFtZTogbWFwLWdldChtYXAtZ2V0KCRfYmVtLWN1cnJlbnQtY29udGV4dCwgJ2Jsb2NrJyksICduYW1lJyk7XG4gICAgJGN1cnJlbnQtaXRlbS1uYW1lOiAkY3VycmVudC1ibG9jay1uYW1lO1xuXG4gICAgLy8gR2V0IHRoZSBtYXAgZm9yIHRoZSBjdXJyZW50IGJsb2NrXG4gICAgJGN1cnJlbnQtYmxvY2s6IG1hcC1nZXQoJF9iZW0tbG9nLCAkY3VycmVudC1ibG9jay1uYW1lKTtcbiAgICAkY3VycmVudC1pdGVtOiAkY3VycmVudC1ibG9jaztcblxuICAgIC8vIEdldCB0aGUgbWFwIGZvciB0aGUgY3VycmVudCBibG9jayBtb2RpZmllcnNcbiAgICAkY3VycmVudC1ibG9jay1tb2RpZmllcnM6IG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdtb2RpZmllcnMnKTtcbiAgICAkY3VycmVudC1pdGVtLW1vZGlmaWVyczogJGN1cnJlbnQtYmxvY2stbW9kaWZpZXJzO1xuXG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgY3VycmVudCBjb250ZXh0IGlzIGEgYmxvY2sgb3IgYW4gZWxlbWVudFxuICAgICRjb250ZXh0LXR5cGU6IGlmKG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAnZWxlbWVudCcpID09IG51bGwsICdibG9jaycsICdlbGVtZW50Jyk7XG5cbiAgICAvLyBVcGRhdGUgaXRlbSBtb2RpZmllciBsaXN0IGlmIHdpdGhpbiBhbiBFbGVtZW50XG4gICAgQGlmICRjb250ZXh0LXR5cGUgPT0gJ2VsZW1lbnQnIHtcbiAgICAgICAgLy8gQHRvZG86IHNob3VsZCB3b3JrIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjdXJyZW50IGl0ZW1zXG4gICAgICAgICRjdXJyZW50LWl0ZW0tbmFtZTogbnRoKG1hcC1nZXQobWFwLWdldCgkX2JlbS1jdXJyZW50LWNvbnRleHQsICdlbGVtZW50JyksICduYW1lJyksMSk7XG4gICAgICAgICRjdXJyZW50LWl0ZW06IG1hcC1nZXQobWFwLWdldCgkY3VycmVudC1ibG9jaywgJ2VsZW1lbnRzJyksICRjdXJyZW50LWl0ZW0tbmFtZSk7XG4gICAgICAgICRjdXJyZW50LWl0ZW0tbW9kaWZpZXJzOiBtYXAtZ2V0KCRjdXJyZW50LWl0ZW0sICdtb2RpZmllcnMnKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgZWFjaCBwb3NzaWJsZSBuYW1lIGluICRuYW1lXG4gICAgQGVhY2ggJG1vZGlmaWVyIGluICRtb2RpZmllcnMge1xuXG4gICAgICAgIC8vIENyZWF0ZSBhbiB1cGRhdGVkIGJsb2NrL2VsZW1lbnQgbWFwXG4gICAgICAgICR1cGRhdGVkOiAoKTtcblxuICAgICAgICBAaWYgJGNvbnRleHQtdHlwZSA9PSAnZWxlbWVudCcge1xuICAgICAgICAgICAgJHVwZGF0ZWQ6ICgjeyRtb2RpZmllcn06ICgnbW9kaWZpZWQtYnknOiAoKSkpXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1vZGlmaWVzLWVsZW1lbnQ6IG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAnbW9kaWZpZXMtZWxlbWVudCcpO1xuICAgICAgICAgICAgJHVwZGF0ZWQ6ICgjeyRtb2RpZmllcn06ICgnbW9kaWZpZXMtZWxlbWVudCc6ICgpKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgaXQgdG8gdGhlIGxpc3Qgb2YgbW9kaWZpZXJzXG4gICAgICAgICRjdXJyZW50LWl0ZW0tbW9kaWZpZXJzOiBtYXAtbWVyZ2UoJGN1cnJlbnQtaXRlbS1tb2RpZmllcnMsICR1cGRhdGVkKTtcbiAgICB9XG5cbiAgICAkdXBkYXRlZC1ibG9jazogKCk7XG5cbiAgICBAaWYgJGNvbnRleHQtdHlwZSA9PSAnZWxlbWVudCcge1xuICAgICAgICAvLyB1cGRhdGUgdGhlIGVsZW1lbnQgbWFwO1xuICAgICAgICAkdXBkYXRlZC1pdGVtOiAoI3skY3VycmVudC1pdGVtLW5hbWV9OiAoJ21vZGlmaWVycyc6ICRjdXJyZW50LWl0ZW0tbW9kaWZpZXJzKSk7XG4gICAgICAgIC8vIEBlcnJvciAkdXBkYXRlZC1pdGVtO1xuICAgICAgICAkdXBkYXRlZC1lbGVtZW50czogbWFwLW1lcmdlKG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdlbGVtZW50cycpLCAkdXBkYXRlZC1pdGVtKTtcbiAgICAgICAgJHVwZGF0ZWQtYmxvY2s6ICgjeyRjdXJyZW50LWJsb2NrLW5hbWV9OiAoJ21vZGlmaWVycyc6IG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdtb2RpZmllcnMnKSwgJ2VsZW1lbnRzJzogJHVwZGF0ZWQtZWxlbWVudHMpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJHVwZGF0ZWQtYmxvY2s6ICgjeyRjdXJyZW50LWJsb2NrLW5hbWV9OiAoJ21vZGlmaWVycyc6ICgkY3VycmVudC1pdGVtLW1vZGlmaWVycyksICdlbGVtZW50cyc6IG1hcC1nZXQoJGN1cnJlbnQtYmxvY2ssICdlbGVtZW50cycpKSk7O1xuICAgIH1cblxuICAgIC8vIC8vIFVwZGF0ZSB0aGUgbG9nXG4gICAgJF9iZW0tbG9nOiBtYXAtbWVyZ2UoJF9iZW0tbG9nLCAkdXBkYXRlZC1ibG9jaykgIWdsb2JhbDtcblxuICAgIEByZXR1cm4gdHJ1ZTtcblxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2NvcGUgTG9nZ2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gRmluZCBpZiBhIGdpdmVuICRzY29wZSBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWRcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNjb3BlIC0gTmFtZSBvZiB0aGUgc2NvcGVcblxuQGZ1bmN0aW9uIHNjb3BlLWV4aXN0cygkc2NvcGUpIHtcbiAgICBAcmV0dXJuIG1hcC1oYXMta2V5KCRfYmVtLWxvZywgJHNjb3BlKTtcbn1cblxuLy8vIExvZyB0aGUgbmV3ICRzY29wZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2NvcGUgLSBzY29wZSBuYW1lXG5cbkBmdW5jdGlvbiBfYmVtLWxvZy1zY29wZSgkc2NvcGUpIHtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBzY29wZSBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWRcbiAgICBAaWYgc2NvcGUtZXhpc3RzKCRzY29wZSkge1xuICAgICAgICBAaWYgJGJlbS10aHJvdy1lcnJvcnMge1xuICAgICAgICAgICAgQGVycm9yICdgI3skc2NvcGV9YCBzY29wZSBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQnO1xuICAgICAgICB9XG5cbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIGEgbmV3IHNjb3BlIG1hcFxuICAgICRuZXctc2NvcGU6ICgkc2NvcGU6ICgpKTtcblxuICAgIC8vIFVwZGF0ZSBiZW0gbG9nIHdpdGggbmV3IHNjb3BlXG4gICAgJF9iZW0tbG9nOiBtYXAtbWVyZ2UoJF9iZW0tbG9nLCAkbmV3LXNjb3BlKSAhZ2xvYmFsO1xuXG4gICAgLy8gRXZlcnl0aGluZyBPS1xuICAgIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVycm9yIGNoZWNrc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRhYmxlIG9mIGNvbnRlbnRzOlxuLy8gMS4gV2l0aGluXG4vLyAyLiBPdXRzaWRlXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAxLiBXaXRoaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBDaGVja3MgdGhhdCBpdCdzIGJlaW5nIGNyZWF0ZWQgd2l0aGluIGFueSBvZiB0aGUgcGFzc2VkICRvYmpzLi4uXG5AZnVuY3Rpb24gX3Nob3VsZC1iZS1jYWxsZWQtd2l0aGluKCRvYmpzLi4uKSB7XG5cbiAgICBAZWFjaCAkb2JqIGluICRvYmpzIHtcbiAgICAgICAgQGlmIG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAkb2JqKSAhPSBudWxsIHtcbiAgICAgICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkYmVtLXRocm93LWVycm9ycyB7XG4gICAgICAgIEBlcnJvciAnSXQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoaW4gI3tpbnNwZWN0KCRvYmpzKX0nO1xuICAgIH1cblxuICAgIEByZXR1cm4gZmFsc2U7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDIuIE91dHNpZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBDaGVja3MgdGhhdCBpdCdzIGJlaW5nIGNyZWF0ZWQgb3V0c2lkZSBhbGwgb2YgdGhlIHBhc3NlZCAkb2Jqcy4uLlxuQGZ1bmN0aW9uIF9zaG91bGQtbm90LWJlLWNhbGxlZC13aXRoaW4oJG9ianMuLi4pIHtcblxuICAgIEBlYWNoICRvYmogaW4gJG9ianMge1xuICAgICAgICBAaWYgbWFwLWdldCgkX2JlbS1jdXJyZW50LWNvbnRleHQsICRvYmopICE9IG51bGwge1xuICAgICAgICAgICAgQGlmICRiZW0tdGhyb3ctZXJyb3JzIHtcbiAgICAgICAgICAgICAgICBAZXJyb3IgJ0l0IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGhpbiAje2luc3BlY3QoJG9ianMpfSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiB0cnVlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQmxvY2sgY29uc3RydWN0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBTZXQgbmFtZXNwYWNlcyBmb3IgZWFjaCBibG9jayB0eXBlXG4vLy8gQHB1YmxpY1xuXG4kYmVtLWJsb2NrLW5hbWVzcGFjZXM6IChcbiAgICAndXRpbGl0eSc6ICd1JyxcbiAgICAnb2JqZWN0JzogJ28nLFxuICAgICdjb21wb25lbnQnOiAnYycsXG4pICFkZWZhdWx0O1xuXG4vLy8gSW5pdGlhbGl6ZXMgYSBuZXcgYmxvY2sgb2JqZWN0XG4vLy8gQHByaXZhdGVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJsb2NrICAtIE5hbWUgZm9yIHRoZSBuZXcgYmxvY2tcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHR5cGUgICAtIEJsb2NrIHR5cGU6ICh1dGlsaXR5LCBvYmplY3Qgb3IgY29tcG9uZW50KVxuLy8vIEByZXR1cm5zIFRoZSBmaW5hbCBzZWxlY3RvciBmb3IgdGhlIG5ldyBibG9jayBvYmplY3RcblxuQGZ1bmN0aW9uIF9ibG9jaygkbmFtZSwgJHR5cGUpIHtcblxuICAgIC8vIExvZyBuZXcgYmxvY2tcbiAgICAkbmV3LWJsb2NrOiBfYmVtLWxvZy1ibG9jaygkbmFtZSk7XG5cbiAgICAvLyBFcnJvciBjaGVja1xuICAgICRvdXRzaWRlLWNoZWNrOiBfc2hvdWxkLW5vdC1iZS1jYWxsZWQtd2l0aGluKCdzY29wZScsICdibG9jaycpO1xuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGluIGNhc2UgZXJyb3IgdGhyb3dpbmcgaXMgZGlzYWJsZWRcbiAgICBAaWYgJG91dHNpZGUtY2hlY2sgPT0gZmFsc2Uge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBuYW1lc3BhY2VcbiAgICAkbmFtZXNwYWNlOiAnJztcblxuICAgIEBpZiAkYmVtLXVzZS1uYW1lc3BhY2VzIHtcbiAgICAgICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYmVtLWJsb2NrLW5hbWVzcGFjZXMsICR0eXBlKSB7XG4gICAgICAgICAgICBAaWYgJGJlbS10aHJvdy1lcnJvcnMge1xuICAgICAgICAgICAgICAgIEBlcnJvciAnYCN7JHR5cGV9YCBpcyBub3QgYSB2YWxpZCBgJHR5cGVgIGZvciBgYmxvY2soKWAnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgICRuYW1lc3BhY2U6IG1hcC1nZXQoJGJlbS1ibG9jay1uYW1lc3BhY2VzLCAkdHlwZSkgKyAnLSc7XG4gICAgfVxuXG4gICAgJHNlbGVjdG9yOiAnLicgKyAkbmFtZXNwYWNlICsgJG5hbWU7XG4gICAgJHNldC1jdXJyZW50OiBzZXQtY3VycmVudC1jb250ZXh0KCdibG9jaycsICRuYW1lLCAkc2VsZWN0b3IpO1xuXG4gICAgQHJldHVybiAkc2VsZWN0b3I7XG59XG5cblxuLy8vIENyZWF0ZXMgYSBibG9jayBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdHlwZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYmxvY2sgIC0gTmFtZSBmb3IgdGhlIG5ldyBibG9ja1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSAgIC0gQmxvY2sgdHlwZTogKHV0aWxpdHksIG9iamVjdCBvciBjb21wb25lbnQpXG5cbkBtaXhpbiBibG9jaygkbmFtZSwgJHR5cGUpIHtcblxuICAgIC8vIFdyaXRlIGJsb2NrIHNlbGVjdG9yXG4gICAgQGF0LXJvb3QgI3tfYmxvY2soJG5hbWUsICR0eXBlKX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBDbGVhciAkX2JlbS1jdXJyZW50LWNvbnRleHQgYmxvY2sgYWZ0ZXIgY3JlYXRpb25cbiAgICAkdW5zZXQtY3VycmVudDogdW5zZXQtY3VycmVudC1jb250ZXh0KCdibG9jaycpO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAyLiBVdGlsaXR5IGFsaWFzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gdXRpbGl0eSgkbmFtZSkge1xuICAgIEBpbmNsdWRlIGJsb2NrKCRuYW1lLCAndXRpbGl0eScpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAzLiBPYmplY3QgYWxpYXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBvYmplY3QoJG5hbWUpIHtcbiAgQGluY2x1ZGUgYmxvY2soJG5hbWUsICdvYmplY3QnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gNC4gQ29tcG9uZW50IGFsaWFzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gY29tcG9uZW50KCRuYW1lKSB7XG4gIEBpbmNsdWRlIGJsb2NrKCRuYW1lLCAnY29tcG9uZW50Jykge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVsZW1lbnQgY29uc3RydWN0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEluaXRpYWxpemVzIGEgbmV3IGVsZW1lbnQgZm9yIHRoZSBjdXJyZW50IGJsb2NrXG4vLy8gQHByaXZhdGVcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEFyZ2xpc3R9ICRlbGVtZW50cyAtIExpc3Qgb2YgbmV3IGVsZW1lbnQgbmFtZXNcbi8vLyBAcmV0dXJucyBUaGUgZmluYWwgc2VsZWN0b3IgZm9yIHRoZSBuZXcgZWxlbWVudChzKVxuXG5AZnVuY3Rpb24gX2VsZW1lbnQoJGVsZW1lbnRzLi4uKSB7XG5cbiAgICAvLyBMb2cgbmV3IGVsZW1lbnQocylcbiAgICAkbmV3LWVsZW1lbnQ6IF9iZW0tbG9nLWVsZW1lbnQoJGVsZW1lbnRzLi4uKTtcblxuICAgIC8vIEVycm9yIGNoZWNrc1xuICAgICRpbnNpZGUtY2hlY2s6IF9zaG91bGQtYmUtY2FsbGVkLXdpdGhpbignYmxvY2snKTtcbiAgICAkb3V0c2lkZS1jaGVjazogX3Nob3VsZC1ub3QtYmUtY2FsbGVkLXdpdGhpbignbW9kaWZpZXInLCAnc3RhdGUnLCAnZWxlbWVudCcpO1xuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGluIGNhc2UgZXJyb3IgdGhyb3dpbmcgaXMgZGlzYWJsZWRcbiAgICBAaWYgJGluc2lkZS1jaGVjayA9PSBmYWxzZSBvciAkb3V0c2lkZS1jaGVjayA9PSBmYWxzZSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgJHNlbGVjdG9yOiAoKTtcblxuICAgIEBlYWNoICRlbGVtZW50IGluICRlbGVtZW50cyB7XG4gICAgICAgICRlOiAjeyZ9I3skYmVtLWVsZW1lbnQtc2VwYXJhdG9yfSN7JGVsZW1lbnR9O1xuICAgICAgICAkc2VsZWN0b3I6IGFwcGVuZCgkc2VsZWN0b3IsICRlLCAnY29tbWEnKTtcbiAgICB9XG5cbiAgICAkc2V0LWN1cnJlbnQ6IHNldC1jdXJyZW50LWNvbnRleHQoJ2VsZW1lbnQnLCAkZWxlbWVudHMsICRzZWxlY3Rvcik7XG5cbiAgICBAcmV0dXJuICRzZWxlY3Rvcjtcbn1cblxuXG4vLy8gQ3JlYXRlcyBuZXcgZWxlbWVudChzKVxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQXJnbGlzdH0gJGVsZW1lbnRzICAtIE5hbWUgb2YgdGhlIG5ldyBlbGVtZW50KHMpXG5cbkBtaXhpbiBlbGVtZW50KCRlbGVtZW50cy4uLikge1xuXG4gICAgQGF0LXJvb3QgI3tfZWxlbWVudCgkZWxlbWVudHMuLi4pfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIENsZWFyICRfYmVtLWN1cnJlbnQtY29udGV4dCBlbGVtZW50IGFmdGVyIGNyZWF0aW9uXG4gICAgJHVuc2V0LWN1cnJlbnQ6IHVuc2V0LWN1cnJlbnQtY29udGV4dCgnZWxlbWVudCcpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNb2RpZmllciBjb25zdHJ1Y3RvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gSW5pdGlhbGl6ZXMgYSBuZXcgbW9kaWZpZXIgZm9yIHRoZSBjdXJyZW50IGJsb2NrIG9yIGVsZW1lbnQocylcbi8vLyBAcHJpdmF0ZVxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQXJnbGlzdH0gJG1vZGlmaWVycyAtIExpc3Qgb2YgbmV3IG1vZGlmaWVyIG5hbWVzXG4vLy8gQHJldHVybnMgVGhlIGZpbmFsIHNlbGVjdG9yIGZvciB0aGUgbmV3IG1vZGlmaWVyKHMpXG5cblxuQGZ1bmN0aW9uIF9tb2RpZmllcigkbW9kaWZpZXJzLi4uKSB7XG5cbiAgICAvLyBMb2cgbmV3IG1vZGlmaWVyKHMpXG4gICAgJG5ldy1tb2RpZmllcjogX2JlbS1sb2ctbW9kaWZpZXIoJG1vZGlmaWVycy4uLik7XG5cbiAgICAvLyBFcnJvciBjaGVja3NcbiAgICAkaW5zaWRlLWNoZWNrOiBfc2hvdWxkLWJlLWNhbGxlZC13aXRoaW4oJ2Jsb2NrJyk7XG4gICAgJG91dHNpZGUtY2hlY2s6IF9zaG91bGQtbm90LWJlLWNhbGxlZC13aXRoaW4oJ21vZGlmaWVyJyk7XG5cbiAgICAvLyBSZXR1cm4gZmFsc2UgaW4gY2FzZSBlcnJvciB0aHJvd2luZyBpcyBkaXNhYmxlZFxuICAgIEBpZiAkaW5zaWRlLWNoZWNrID09IGZhbHNlIG9yICRvdXRzaWRlLWNoZWNrID09IGZhbHNlIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAkc2VsZWN0b3I6ICgpO1xuXG4gICAgQGVhY2ggJG1vZGlmaWVyIGluICRtb2RpZmllcnMge1xuICAgICAgICAkbmV3LXNlbGVjdG9yOiAoKTtcblxuICAgICAgICBAZWFjaCAkc2VsIGluICYge1xuICAgICAgICAgICAgJG1vZGlmaWVkLXNlbGVjdG9yOiAjeyRzZWx9I3skYmVtLW1vZGlmaWVyLXNlcGFyYXRvcn0jeyRtb2RpZmllcn07XG4gICAgICAgICAgICAkbmV3LXNlbGVjdG9yOiBhcHBlbmQoJG5ldy1zZWxlY3RvciwgJG1vZGlmaWVkLXNlbGVjdG9yLCAnY29tbWEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRzZWxlY3RvcjogYXBwZW5kKCRzZWxlY3RvciwgJG5ldy1zZWxlY3RvciwgJ2NvbW1hJyk7XG4gICAgfVxuXG4gICAgJHNldC1jdXJyZW50OiBzZXQtY3VycmVudC1jb250ZXh0KCdtb2RpZmllcicsICRtb2RpZmllcnMsICRzZWxlY3Rvcik7XG5cbiAgICBAcmV0dXJuICRzZWxlY3Rvcjtcbn1cblxuXG4vLy8gQ3JlYXRlcyBuZXcgbW9kaWZpZXIocylcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEFyZ2xpc3R9ICRtb2RpZmllcnMgIC0gTmFtZSBvZiB0aGUgbmV3IG1vZGlmaWVyKHMpXG5cbkBtaXhpbiBtb2RpZmllcigkbW9kaWZpZXJzLi4uKSB7XG5cbiAgICBAYXQtcm9vdCAje19tb2RpZmllcigkbW9kaWZpZXJzLi4uKX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkdW5zZXQtY3VycmVudDogdW5zZXQtY3VycmVudC1jb250ZXh0KCdtb2RpZmllcicpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbGVtZW50IG1vZGlmaWVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBTY29wZXMgdGhlIEBjb250ZW50IHJ1bGVzZXQgdG8gYW4gZWxlbWVudCBvZiB0aGUgYmxvY2sgYmVpbmcgbW9kaWZpZWRcbi8vLyBAcHJpdmF0ZVxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQXJnbGlzdH0gJG1vZGlmaWVkLWVsZW1lbnRzIC0gTGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBiZSBtb2RpZmllZFxuLy8vIEByZXR1cm5zIFRoZSBmaW5hbCBzZWxlY3RvciBmb3IgdGhlIGVsZW1lbnQocykgbW9kaWZpZWQgYnkgdGhlIGJsb2NrIG1vZGlmaWVyXG5cbkBmdW5jdGlvbiBfbW9kaWZpZXMtZWxlbWVudCgkbW9kaWZpZWQtZWxlbWVudHMuLi4pIHtcblxuICAgICRpbnNpZGUtY2hlY2s6IF9zaG91bGQtYmUtY2FsbGVkLXdpdGhpbignYmxvY2snLCAnbW9kaWZpZXInLCAnc3RhdGUnLCAndGhlbWUnKTtcbiAgICAkb3V0c2lkZS1jaGVjazogX3Nob3VsZC1ub3QtYmUtY2FsbGVkLXdpdGhpbignZWxlbWVudCcpO1xuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGluIGNhc2UgZXJyb3IgdGhyb3dpbmcgaXMgZGlzYWJsZWRcbiAgICBAaWYgJGluc2lkZS1jaGVjayA9PSBmYWxzZSBvciAkb3V0c2lkZS1jaGVjayA9PSBmYWxzZSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgJHNlbGVjdG9yczogKCk7XG5cbiAgICBAZWFjaCAkZWxlbWVudCBpbiAkbW9kaWZpZWQtZWxlbWVudHMge1xuICAgICAgICAkZWxlbWVudDogbWFwLWdldChtYXAtZ2V0KCRfYmVtLWN1cnJlbnQtY29udGV4dCwgJ2Jsb2NrJyksICdzZWxlY3RvcicpICsgJGJlbS1lbGVtZW50LXNlcGFyYXRvciArICRlbGVtZW50O1xuICAgICAgICAkc2VsZWN0b3JzOiBhcHBlbmQoJHNlbGVjdG9ycywgJGVsZW1lbnQsICdjb21tYScpO1xuICAgIH1cblxuICAgICRzOiAmOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJzYXNzXG4gICAgJGJsb2NrOiBzZWxlY3Rvci1hcHBlbmQoJHMuLi4pO1xuXG4gICAgJHNlbGVjdG9yOiBzZWxlY3Rvci1uZXN0KCRibG9jaywgJz4nLCAkc2VsZWN0b3JzKTtcblxuICAgICRzZXQtY3VycmVudDogc2V0LWN1cnJlbnQtY29udGV4dCgnbW9kaWZpZXMtZWxlbWVudCcsICRtb2RpZmllZC1lbGVtZW50cywgJHNlbGVjdG9yKTtcblxuICAgIEByZXR1cm4gJHNlbGVjdG9yO1xufVxuXG5cbi8vLyBTY29wZXMgdGhlIEBjb250ZW50IHJ1bGVzZXQgdG8gYW4gZWxlbWVudCBvZiB0aGUgYmxvY2sgYmVpbmcgbW9kaWZpZWRcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEFyZ2xpc3R9ICRtb2RpZmllZC1lbGVtZW50cyAtIE5hbWUgb2YgdGhlIGVsZW1lbnQocykgdGhhdCBzaG91bGQgYmUgbW9kaWZpZWRcblxuQG1peGluIG1vZGlmaWVzLWVsZW1lbnQoJG1vZGlmaWVkLWVsZW1lbnRzLi4uKSB7XG4gICAgQGF0LXJvb3QgI3tfbW9kaWZpZXMtZWxlbWVudCgkbW9kaWZpZWQtZWxlbWVudHMuLi4pfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICR1bnNldC1jdXJyZW50OiB1bnNldC1jdXJyZW50LWNvbnRleHQoJ21vZGlmaWVzLWVsZW1lbnQnKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNjb3BlIGNvbnN0cnVjdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gU2V0IG5hbWVzcGFjZSBmb3Igc2NvcGVzXG4vLy8gQHB1YmxpY1xuXG4kYmVtLXNjb3BlLW5hbWVzcGFjZTogJ3MnO1xuXG4vLy8gSW5pdGlhbGl6ZXMgYSBuZXcgc2NvcGUgb2JqZWN0XG4vLy8gQHByaXZhdGVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNjb3BlICAtIE5hbWUgZm9yIHRoZSBuZXcgc2NvcGVcbi8vLyBAcmV0dXJucyBUaGUgZmluYWwgc2VsZWN0b3IgZm9yIHRoZSBuZXcgc2NvcGUgb2JqZWN0XG5cbkBmdW5jdGlvbiBfc2NvcGUoJHNjb3BlKSB7XG5cbiAgICAvLyBMb2cgbmV3IGJsb2NrXG4gICAgJG5ldy1zY29wZTogX2JlbS1sb2ctc2NvcGUoJHNjb3BlKTtcblxuICAgIC8vIEVycm9yIGNoZWNrc1xuICAgICRvdXRzaWRlLWNoZWNrOiBfc2hvdWxkLW5vdC1iZS1jYWxsZWQtd2l0aGluKCdibG9jaycsICdzY29wZScpO1xuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGluIGNhc2UgZXJyb3IgdGhyb3dpbmcgaXMgZGlzYWJsZWRcbiAgICBAaWYgJG91dHNpZGUtY2hlY2sgPT0gZmFsc2Uge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgICRuYW1lc3BhY2U6IGlmKCRiZW0tdXNlLW5hbWVzcGFjZXMsICRiZW0tc2NvcGUtbmFtZXNwYWNlICsgJy0nLCAnJyk7XG4gICAgJHNlbGVjdG9yOiAnLicgKyAkbmFtZXNwYWNlICsgJHNjb3BlO1xuXG4gICAgJHNldC1jdXJyZW50OiBzZXQtY3VycmVudC1jb250ZXh0KCdzY29wZScsICRzY29wZSwgJHNlbGVjdG9yKTtcblxuICAgIEByZXR1cm4gJHNlbGVjdG9yO1xufVxuXG5AbWl4aW4gc2NvcGUoJHNjb3BlKSB7XG5cbiAgICBAYXQtcm9vdCAje19zY29wZSgkc2NvcGUpfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICR1bnNldC1jdXJyZW50OiB1bnNldC1jdXJyZW50LWNvbnRleHQoJ3Njb3BlJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGVtZSBjb25zdHJ1Y3RvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGJlbS10aGVtZS1uYW1lc3BhY2U6ICd0JyAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIF90aGVtZSgkdGhlbWVzLi4uKSB7XG5cbiAgICAvLyBJZiB5b3UgdHJ5IHRvIGhhY2sgYSBoYWNrIHlvdSBjYW4gYnJlYWsgdGhlIGludGVybmV0LlxuICAgIC8vIFNvIHBsZWFzZSwgbm8gb25lIHRyeSBpdC5cbiAgICAkb3V0c2lkZS1jaGVjazogX3Nob3VsZC1ub3QtYmUtY2FsbGVkLXdpdGhpbigndGhlbWUnKTtcblxuICAgIC8vIFJldHVybiBmYWxzZSBpbiBjYXNlIGVycm9yIHRocm93aW5nIGlzIGRpc2FibGVkXG4gICAgQGlmICRvdXRzaWRlLWNoZWNrID09IGZhbHNlIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAkc2VsZWN0b3I6ICgpO1xuICAgICRuYW1lc3BhY2U6IGlmKCRiZW0tdXNlLW5hbWVzcGFjZXMsICRiZW0tdGhlbWUtbmFtZXNwYWNlICsgJy0nLCAnJyk7XG5cbiAgICBAZWFjaCAkdGhlbWUgaW4gJHRoZW1lcyB7XG4gICAgICAgIEBlYWNoICRzZWwgaW4gJiB7XG4gICAgICAgICAgICAkdDogc2VsZWN0b3ItbmVzdCgnLiN7JG5hbWVzcGFjZX0jeyR0aGVtZX0nLCAkc2VsKTtcbiAgICAgICAgICAgICRzZWxlY3RvcjogYXBwZW5kKCRzZWxlY3RvciwgJHQsICdjb21tYScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJHNldC1jdXJyZW50OiBzZXQtY3VycmVudC1jb250ZXh0KCd0aGVtZScsICR0aGVtZXMsICRzZWxlY3Rvcik7XG5cbiAgICBAcmV0dXJuICRzZWxlY3Rvcjtcbn1cblxuQG1peGluIHRoZW1lKCR0aGVtZXMuLi4pIHtcblxuICAgIEBhdC1yb290ICN7X3RoZW1lKCR0aGVtZXMuLi4pfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkdW5zZXQtY3VycmVudDogdW5zZXQtY3VycmVudC1jb250ZXh0KCd0aGVtZScpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3RhdGUgY29uc3RydWN0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRiZW0tc3RhdGUtbmFtZXNwYWNlOiAnaXMnICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gX3N0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgICAkc2VsZWN0b3I6ICgpO1xuICAgICRuYW1lc3BhY2U6IGlmKCRiZW0tdXNlLW5hbWVzcGFjZXMsICRiZW0tc3RhdGUtbmFtZXNwYWNlICsgJy0nLCAnJyk7XG5cbiAgICBAZWFjaCAkc3RhdGUgaW4gJHN0YXRlcyB7XG4gICAgICAkc3M6ICY7IC8vIFdvcmthcm91bmQgZm9yIGxpYnNhc3NcbiAgICAgICRzOiBzZWxlY3Rvci1hcHBlbmQoJHNzLCAnLiN7JG5hbWVzcGFjZX0jeyRzdGF0ZX0nKTtcbiAgICAgICRzZWxlY3RvcjogYXBwZW5kKCRzZWxlY3RvciwgJHMsICdjb21tYScpO1xuICAgIH1cblxuICAgICRzZXQtY3VycmVudDogc2V0LWN1cnJlbnQtY29udGV4dCgnc3RhdGUnLCAkc3RhdGVzLCAkc2VsZWN0b3IpO1xuXG4gICAgQHJldHVybiAkc2VsZWN0b3I7XG59XG5cbkBtaXhpbiBzdGF0ZSgkc3RhdGVzLi4uKSB7XG5cbiAgICBAYXQtcm9vdCAje19zdGF0ZSgkc3RhdGVzLi4uKX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJHVuc2V0LXN0YXRlOiB1bnNldC1jdXJyZW50LWNvbnRleHQoJ3N0YXRlJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAxMS4gSGFjayBjb25zdHJ1Y3RvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEhhY2sgbmFtZXNwYWNlIHByZXBlbmRlZCB0byB0aGUgc2VsZWN0b3JcbiRoYWNrLW5hbWVzcGFjZTogJ18nICFkZWZhdWx0O1xuXG4vLy8gRmluZCB0aGUgbGFzdCBzaW1wbGUgc2VsZWN0b3IgaW4gYSBzZWxlY3RvclxuQGZ1bmN0aW9uIF9sYXN0LXNpbXBsZS1zZWxlY3Rvcigkc2VsZWN0b3IpIHtcbiAgICAkcGFyc2VkOiBzZWxlY3Rvci1wYXJzZSgkc2VsZWN0b3IpO1xuXG4gICAgQGlmIGxlbmd0aCgkcGFyc2VkKSA+IDEge1xuICAgICAgICBAaWYgJGJlbS10aHJvdy1lcnJvcnMge1xuICAgICAgICAgICAgQGVycm9yICdgI3skc2VsZWN0b3J9YCBjb250YWlucyAje2xlbmd0aCgkcGFyc2VkKX0gc2VsZWN0b3JzIGFuZCB0aGUgYF9sYXN0LXNpbXBsZS1zZWxlY3RvcigpYGZ1bmN0aW9uIGFjY2VwdHMgb25seSAxLic7XG4gICAgICAgIH1cbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgJGxhc3Qtc2ltcGxlLXNlbGVjdG9yOiBudGgobnRoKCRwYXJzZWQsIDEpLCAtMSk7XG5cbiAgICBAcmV0dXJuICRsYXN0LXNpbXBsZS1zZWxlY3Rvcjtcbn1cblxuQGZ1bmN0aW9uIF9oYWNrKCkge1xuXG4gICAgLy8gWW91IG1heSBub3QgaGFjayBhIGhhY2tcbiAgICAkb3V0c2lkZS1jaGVjazogX3Nob3VsZC1ub3QtYmUtY2FsbGVkLXdpdGhpbignaGFjaycpO1xuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGluIGNhc2UgZXJyb3IgdGhyb3dpbmcgaXMgZGlzYWJsZWRcbiAgICBAaWYgJG91dHNpZGUtY2hlY2sgPT0gZmFsc2Uge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgICRzZWxlY3RvcjogKCk7XG4gICAgJG5hbWVzcGFjZTogaWYoJGJlbS11c2UtbmFtZXNwYWNlcywgJGhhY2stbmFtZXNwYWNlLCAnJyk7XG5cbiAgICAvLyBDaGVjayBpZiB3ZSBhcmUgaGFja2luZyBhbiBlbGVtZW50IG1vZGlmaWVkIGJ5IGEgYmxvY2sgbW9kaWZpZXJcbiAgICAkaXMtaGFjay1lbGVtZW50OiBub3Qgbm90IG1hcC1nZXQoJF9iZW0tY3VycmVudC1jb250ZXh0LCAnbW9kaWZpZXMtZWxlbWVudCcpO1xuICAgICRzZWxlY3RvcnM6IGlmKCRpcy1oYWNrLWVsZW1lbnQsIG1hcC1nZXQobWFwLWdldCgkX2JlbS1jdXJyZW50LWNvbnRleHQsICdtb2RpZmllcy1lbGVtZW50JyksICdzZWxlY3RvcicpLCAmKTtcblxuICAgIC8vIEB0b2RvIHJlZmFjdG9yIHRoZSBmb2xsb3dpbmcgY29kZSB0byBzb21ldGhpbmcgbW9yZSByZWFkYWJcbiAgICBAZWFjaCAkcyBpbiAkc2VsZWN0b3JzIHtcbiAgICAgICAgJHNlbGVjdG9yLXRvLXN0cjogaW5zcGVjdChpZigkaXMtaGFjay1lbGVtZW50LCBfbGFzdC1zaW1wbGUtc2VsZWN0b3IoJHMpLCBudGgoJHMsIDEpKSk7XG4gICAgICAgICRzZWxlY3Rvci13aXRob3V0LWRvdDogc3RyLXNsaWNlKCRzZWxlY3Rvci10by1zdHIsIDIsIC0xKTtcbiAgICAgICAgJG5ldy1zZWxlY3RvcjogJy4nICsgJG5hbWVzcGFjZSArICRzZWxlY3Rvci13aXRob3V0LWRvdDtcbiAgICAgICAgJHNsOiBzZWxlY3Rvci1yZXBsYWNlKCRzLCBpZigkaXMtaGFjay1lbGVtZW50LCAkc2VsZWN0b3ItdG8tc3RyLCBudGgoJHMsIDEpKSwgJG5ldy1zZWxlY3Rvcik7XG4gICAgICAgICRzZWxlY3RvcjogYXBwZW5kKCRzZWxlY3RvciwgJHNsLCAnY29tbWEnKTtcbiAgICB9XG5cbiAgICAkc2V0LWN1cnJlbnQ6IHNldC1jdXJyZW50LWNvbnRleHQoJ2hhY2snLCAnc29tZS1oYWNrJywgJHNlbGVjdG9yKTtcblxuICAgIEByZXR1cm4gJHNlbGVjdG9yO1xuXG59XG5cbkBtaXhpbiBoYWNrKCkge1xuXG4gICAgQGF0LXJvb3QgI3tfaGFjaygpfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICR1bnNldC1jdXJyZW50OiB1bnNldC1jdXJyZW50LWNvbnRleHQoJ2hhY2snKTtcblxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVidWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUYWJsZSBvZiBjb250ZW50czpcbi8vIDEuIENsYXNzZXNcbi8vIDIuIEVsZW1lbnRzXG4vLyAzLiBNb2RpZmllcnNcbi8vIDQuIE9iamVjdHNcbi8vIDUuIENvbXBvbmVudHNcbi8vIDYuIEhhY2tzXG5cbiRiZW0tZGVidWctc3R5bGVzOiAoXG4gICAgJ2NsYXNzZXMnICAgIDogNXB4IHNvbGlkICNkZGQsXG4gICAgJ21vZGlmaWVycycgIDogNXB4IHNvbGlkICNhYWEsXG4gICAgJ2VsZW1lbnRzJyAgIDogNXB4IHNvbGlkICMxMTEsXG4gICAgJ29iamVjdHMnICAgIDogNXB4IHNvbGlkICNGRkRDMDAsXG4gICAgJ2NvbXBvbmVudHMnIDogNXB4IHNvbGlkICNGRjg1MUIsXG4gICAgJ3V0aWxpdGllcycgIDogNXB4IHNvbGlkICMwMDc0RDksXG4gICAgJ2hhY2tzJyAgICAgIDogNXB4IHNvbGlkICNGRjQxMzYsXG4pICFkZWZhdWx0O1xuXG5AbWl4aW4gYmVtLWRlYnVnKCR0YXJnZXRzLi4uKSB7XG5cbiAgICAvLyBJZiBubyB0YXJnZXRzIGFyZSBnaXZlbiwgc2hvdyB0aGVtIGFsbC5cbiAgICAkc2hvd19hbGw6IGxlbmd0aCgkdGFyZ2V0cykgPT0gMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gMS4gQ2xhc3Nlc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBAaWYgbm90IG5vdCBpbmRleCgkdGFyZ2V0cywgJ2NsYXNzZXMnKSBvciAkc2hvd19hbGwge1xuICAgICAgICBbY2xhc3NdIHtcbiAgICAgICAgICBvdXRsaW5lOiBtYXAtZ2V0KCRiZW0tZGVidWctc3R5bGVzLCAnY2xhc3NlcycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAyLiBFbGVtZW50c1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBAaWYgbm90IG5vdCBpbmRleCgkdGFyZ2V0cywgJ2VsZW1lbnRzJykgb3IgJHNob3dfYWxsIHtcbiAgICAgICAgW2NsYXNzKj1cIiN7JGJlbS1lbGVtZW50LXNlcGFyYXRvcn1cIl0ge1xuICAgICAgICAgIG91dGxpbmU6IG1hcC1nZXQoJGJlbS1kZWJ1Zy1zdHlsZXMsICdlbGVtZW50cycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAzLiBNb2RpZmllcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQGlmIG5vdCBub3QgaW5kZXgoJHRhcmdldHMsICdtb2RpZmllcnMnKSBvciAkc2hvd19hbGwge1xuICAgICAgICBbY2xhc3MqPVwiI3skYmVtLW1vZGlmaWVyLXNlcGFyYXRvcn1cIl0ge1xuICAgICAgICAgIG91dGxpbmU6IG1hcC1nZXQoJGJlbS1kZWJ1Zy1zdHlsZXMsICdtb2RpZmllcnMnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gMy4gT2JqZWN0c1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBAaWYgbm90IG5vdCBpbmRleCgkdGFyZ2V0cywgJ29iamVjdHMnKSBvciAkc2hvd19hbGwge1xuICAgICAgICAkYzogbWFwLWdldCgkYmVtLWJsb2NrLW5hbWVzcGFjZXMsICdvYmplY3QnKSArICctJztcbiAgICAgICAgW2NsYXNzXj1cIiN7JGN9XCJdLFxuICAgICAgICBbY2xhc3MqPVwiICN7JGN9XCJdIHtcbiAgICAgICAgICBvdXRsaW5lOiBtYXAtZ2V0KCRiZW0tZGVidWctc3R5bGVzLCAnb2JqZWN0cycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyA0LiBDb21wb25lbnRzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBpZiBub3Qgbm90IGluZGV4KCR0YXJnZXRzLCAnY29tcG9uZW50cycpIG9yICRzaG93X2FsbCB7XG4gICAgICAgICRjOiBtYXAtZ2V0KCRiZW0tYmxvY2stbmFtZXNwYWNlcywgY29tcG9uZW50KSArICctJztcbiAgICAgICAgW2NsYXNzXj1cIiN7JGN9XCJdLFxuICAgICAgICBbY2xhc3MqPVwiICN7JGN9XCJdIHtcbiAgICAgICAgICBvdXRsaW5lOiBtYXAtZ2V0KCRiZW0tZGVidWctc3R5bGVzLCAnY29tcG9uZW50cycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyA1LiBVdGlsaXRpZXNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQGlmIG5vdCBub3QgaW5kZXgoJHRhcmdldHMsICd1dGlsaXRpZXMnKSBvciAkc2hvd19hbGwge1xuICAgICAgICAkYzogbWFwLWdldCgkYmVtLWJsb2NrLW5hbWVzcGFjZXMsIHV0aWxpdHkpICsgJy0nO1xuICAgICAgICBbY2xhc3NePVwiI3skY31cIl0sXG4gICAgICAgIFtjbGFzcyo9XCIgI3skY31cIl0ge1xuICAgICAgICAgIG91dGxpbmU6IG1hcC1nZXQoJGJlbS1kZWJ1Zy1zdHlsZXMsICd1dGlsaXRpZXMnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gNi4gSGFja3NcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQGlmIG5vdCBub3QgaW5kZXgoJHRhcmdldHMsICdoYWNrcycpIG9yICRzaG93X2FsbCB7XG4gICAgICAgIFtjbGFzc149XCIjeyRoYWNrLW5hbWVzcGFjZX1cIl0ge1xuICAgICAgICAgIG91dGxpbmU6IG1hcC1nZXQoJGJlbS1kZWJ1Zy1zdHlsZXMsICdoYWNrcycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3VmZml4IGNvbnN0cnVjdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gU3VmZml4IG5hbWVzcGFjZVxuJGJlbS1zdWZmaXgtbmFtZXNwYWNlOiAnXFxcXEAnICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gX3N1ZmZpeCgkc3VmZml4ZXMuLi4pIHtcbiAgICAkc2VsZWN0b3I6ICgpO1xuICAgICRuYW1lc3BhY2U6IGlmKCRiZW0tdXNlLW5hbWVzcGFjZXMsICRiZW0tc3VmZml4LW5hbWVzcGFjZSwgJycpO1xuXG4gICAgLy8gQ2hlY2tpbmcgaWYgdGhlIHN1ZmZpeCBpcyBiZWluZyBzZXQgd2l0aGluIGEgc3RhdGUuXG4gICAgLy8gSWYgc28sIGRpc2FsbG93IGFuZCB0aHJvdyBhbiBlcnJvci5cbiAgICAvLyBAVE9ETyBBbGxvdyBzdWZmaXhlcyB0byBiZSBzZXQgd2l0aGluIHN0YXRlc1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRfYmVtLWN1cnJlbnQtY29udGV4dCwgc3RhdGUpIGFuZCBtYXAtZ2V0KCRfYmVtLWN1cnJlbnQtY29udGV4dCwgc3RhdGUpICE9IG51bGwge1xuICAgICAgICBAZXJyb3IgJ0N1cnJlbnRseSwgc3VmZml4ZXMgY2Fubm90IGJlIHNldCB3aXRoaW4gc3RhdGVzLiBNb3ZlIHRoZSBzdWZmaXggZGVjbGFyYXRpb24gb3V0c2lkZSB0aGUgc3RhdGUgY29uc3RydWN0b3IuJztcbiAgICB9XG5cbiAgICBAZWFjaCAkc3VmZml4IGluICRzdWZmaXhlcyB7XG4gICAgICAgIEBlYWNoICRzZWwgaW4gJiB7XG5cbiAgICAgICAgICAgIC8vIENoZWNraW5nIGlmIHRoZSBzZWxlY3RvciBpcyBjb21wb3NlZCBvZiAzIGVsZW1lbnRzLiBJZiB0aGF0J3MgdGhlIGNhc2UsXG4gICAgICAgICAgICAvLyB3ZSdyZSBkZWFsaW5nIHdpdGggYW4gZWxlbWVudCBiZWluZyBtb2RpZmllZCBieSBhIGJsb2NrIG1vZGlmaWVyLlxuICAgICAgICAgICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBuZWVkIHRvIGFkZCB0aGUgc3VmZml4IHRvIHRoZSBibG9jayB0b28uXG4gICAgICAgICAgICAvLyBAVE9ETyBGaW5kIGEgYmV0dGVyIHdheSB0byBkZWFsIHdpdGggdGhpcyBzaXR1YXRpb24uXG5cbiAgICAgICAgICAgICAgICBAaWYgbGVuZ3RoKCRzZWwpID09IDMge1xuICAgICAgICAgICAgICAgICAgICAkdG1wOiBhcHBlbmQoKCksIG50aCgkc2VsLCAxKSArICcjeyRuYW1lc3BhY2V9I3skc3VmZml4fScsIHNwYWNlKTtcbiAgICAgICAgICAgICAgICAgICAgJHRtcDogYXBwZW5kKCR0bXAsIG50aCgkc2VsLCAyKSwgc3BhY2UpO1xuICAgICAgICAgICAgICAgICAgICAkdG1wOiBhcHBlbmQoJHRtcCwgbnRoKCRzZWwsIDMpLCBzcGFjZSk7XG4gICAgICAgICAgICAgICAgICAgICRzZWw6ICN7JHRtcH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgJHM6ICRzZWwgKyAnI3skbmFtZXNwYWNlfSN7JHN1ZmZpeH0nO1xuICAgICAgICAgICAgJHNlbGVjdG9yOiBhcHBlbmQoJHNlbGVjdG9yLCAkcywgJ2NvbW1hJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkc2V0LWN1cnJlbnQ6IHNldC1jdXJyZW50LWNvbnRleHQoJ3N1ZmZpeCcsICRzdWZmaXhlcywgJHNlbGVjdG9yKTtcblxuICAgIEByZXR1cm4gJHNlbGVjdG9yO1xufVxuXG5AbWl4aW4gc3VmZml4KCRzdWZmaXhlcy4uLikge1xuXG4gICAgQGF0LXJvb3QgI3tfc3VmZml4KCRzdWZmaXhlcy4uLil9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICR1bnNldC1zdWZmaXg6IHVuc2V0LWN1cnJlbnQtY29udGV4dCgnc3VmZml4Jyk7XG59XG4iLCJAZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6J0NvbmRlbnNlZEJvbGQnO1xuXHRzcmM6IHVybCgnLi4vZm9udHMvQ29uZGVuc2VkQm9sZC5lb3QnKTtcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL0NvbmRlbnNlZEJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL0NvbmRlbnNlZEJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0dXJsKCcuLi9mb250cy9Db25kZW5zZWRCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL0NvbmRlbnNlZEJvbGQuc3ZnI28gQ29uZGVuc2VkQm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC1zdHJldGNoOiBjb25kZW5zZWQ7XG5cdHVuaWNvZGUtcmFuZ2U6IFUrMDAyMC0wMEZFO1xufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6J0NvbmRlbnNlZExpZ2h0Jztcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL0NvbmRlbnNlZExpZ2h0LmVvdCcpO1xuXHRzcmM6IHVybCgnLi4vZm9udHMvQ29uZGVuc2VkTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL0NvbmRlbnNlZExpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHRcdHVybCgnLi4vZm9udHMvQ29uZGVuc2VkTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnLi4vZm9udHMvQ29uZGVuc2VkTGlnaHQuc3ZnI28gQ29uZGVuc2VkTGlnaHQnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtc3RyZXRjaDogY29uZGVuc2VkO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMDBGRTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6J0RJTlByb0NvbmQnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9ESU5Qcm9Db25kZW5zZWRSZWd1bGFyLmVvdCcpO1xuXHRzcmM6IHVybCgnLi4vZm9udHMvRElOUHJvQ29uZGVuc2VkUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHRcdHVybCgnLi4vZm9udHMvRElOUHJvQ29uZGVuc2VkUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcblx0XHR1cmwoJy4uL2ZvbnRzL0RJTlByb0NvbmRlbnNlZFJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnLi4vZm9udHMvRElOUHJvQ29uZGVuc2VkUmVndWxhci5zdmcjRElOIFBybyBDb25kZW5zZWQgUmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBjb25kZW5zZWQ7XG4gICAgdW5pY29kZS1yYW5nZTogVSswMDIwLTAwRkU7XG59XG5cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6J2dob3RpYyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1JlZ3VsYXIuZW90Jyk7XG5cdHNyYzogdXJsKCcuLi9mb250cy9SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCcuLi9mb250cy9SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHRcdHVybCgnLi4vZm9udHMvUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG5cdFx0dXJsKCcuLi9mb250cy9SZWd1bGFyLnN2ZyNUIFJlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogc2VtaS1leHBhbmRlZDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzAwMjAtMDJEQztcbn1cbiIsIkBpbmNsdWRlIG9iamVjdCgnZm9ybScpIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2ZpZWxkJykge1xuXHRcdG1hcmdpbi1ib3R0b206MTBweDtcblx0XHRib3JkZXI6c29saWQgMnB4ICRjb2xvcl9wcmltYXJ5O1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0Zm9udC1zaXplOjA7XG5cdFx0Ji5uby1ib3JkZXJ7XG5cdFx0XHRib3JkZXI6bm9uZTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbW9kaWZpZXIoJ2FyZWEnKSB7XG5cdFx0XHQuby1mb3JtX19sYWJlbHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcblx0XHRcdH1cblx0XHRcdC5vLWZvcm1fX2FyZWF7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCY6bGFzdC1jaGlsZHtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgnbGFiZWwnKSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1mYW1pbHk6JGZvbnRfYmFzZTtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0Y29sb3I6JGNvbG9yX3ByaW1hcnk7XG5cdFx0Zm9udC1zaXplOjIwcHg7XG5cdFx0d2lkdGg6MTUlO1xuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNzY4cHgpIHtcblx0XHRcdHdpZHRoOjMwJTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig0ODBweCkge1xuXHRcdFx0cGFkZGluZzo1cHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2lucHV0Jykge1xuXHRcdGZvbnQtc2l6ZToyMHB4O1xuXHRcdGZvbnQtZmFtaWx5OiRmb250X2Jhc2U7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRcdHdpZHRoOjg1JTtcblx0XHRib3JkZXI6bm9uZTtcblx0XHQmOmZvY3Vze1xuXHRcdFx0b3V0bGluZTpub25lO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0XHR3aWR0aDo3MCU7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNDgwcHgpIHtcblx0XHRcdHBhZGRpbmc6NXB4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdhcmVhJykge1xuXHRcdHdpZHRoOjg1JTtcblx0XHRwYWRkaW5nOjEwcHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdG1pbi1oZWlnaHQ6MTAwcHg7XG5cdFx0Zm9udC1zaXplOjE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6MjBweDtcblx0XHRib3JkZXI6bm9uZTtcblx0XHQmOmZvY3Vze1xuXHRcdFx0b3V0bGluZTpub25lO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0XHRtaW4taGVpZ2h0OjYwcHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2J0bicpIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRcdGJvcmRlcjpub25lO1xuXHRcdGJhY2tncm91bmQtY29sb3I6JGNvbG9yX3ByaW1hcnk7XG5cdFx0Y29sb3I6I2ZmZjtcblx0XHRsaW5lLWhlaWdodDoxMDAlO1xuXHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0Zm9udC1zaXplOjE4cHg7XG5cdFx0Jjpmb2N1c3tcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXHRcdCY6aG92ZXJ7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiM1QTdEMkQ7XG5cdFx0fVxuXHR9XG5cdCYuZW1haWxqcy1zZW5kaW5ne1xuXHRcdCY6YmVmb3Jle1xuXHRcdFx0Y29udGVudDonRW52aWFkbyBkYXRvcyc7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGJvdHRvbToxNXB4O1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0Zm9udC1zaXplOjIwcHg7XG5cdFx0XHRjb2xvcjokY29sb3JfcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWcvbG9hZGVyLmdpZicpO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjtcblx0XHRcdHBhZGRpbmctbGVmdDoyNXB4O1xuXHRcdH1cblx0fVxufVxuIiwiI3N0YXR1cy1mb3Jte1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRtYXJnaW46NTBweDtcbn1cbkBpbmNsdWRlIG9iamVjdCgnbWVzc2FnZScpIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGZvbnQtc2l6ZTo0MHB4O1xufVxuIiwiQGluY2x1ZGUgb2JqZWN0KCdidG4nKSB7XG5cdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6OTAwO1xuXHRib3JkZXI6bm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjokY29sb3JfcHJpbWFyeTtcblx0Y29sb3I6I2ZmZjtcblx0bGluZS1oZWlnaHQ6MTAwJTtcblx0cGFkZGluZzogMTVweDtcblx0Zm9udC1zaXplOjE4cHg7XG5cdCY6Zm9jdXN7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXHQmOmhvdmVye1xuXHRcdGJhY2tncm91bmQtY29sb3I6IzVBN0QyRDtcblx0fVxufVxuIiwiQGluY2x1ZGUgY29tcG9uZW50KCdmb290ZXInKSB7XG5cdGJhY2tncm91bmQtY29sb3I6IzI0NTAwMztcblx0cGFkZGluZzoxNXB4O1xuXHRmb250LWZhbWlseTokZm9udF9iYXNlMDM7XG5cdHRleHQtYWxpZ246Y2VudGVyO1xuXHRjb2xvcjogI2ZmZjtcblx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuXHRmb250LXNpemU6MjJweDtcblx0cHtcblx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGNvbXBvbmVudCgnYWJvdXQnKSB7XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2Rpc3BsYXknKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uL2ltZy9kaXNwbGF5LWFib3V0LmpwZycpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3A7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0XHRtaW4taGVpZ2h0OjQwMHB4O1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig5OTJweCkge1xuXHRcdFx0bWluLWhlaWdodDozNDBweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig3NjhweCkge1xuXHRcdFx0aGVpZ2h0OjIwMHB4O1xuXHRcdFx0bWluLWhlaWdodDppbmhlcml0O1xuXHRcdFx0Ly8gaGVpZ2h0OjIwMHB4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdib2R5Jykge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IzhDOUEwQTtcblx0XHRjb2xvcjojZmZmO1xuXHRcdHBhZGRpbmc6MzBweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0bGluZS1oZWlnaHQ6MjZweDtcblx0XHRmb250LXNpemU6MjBweDtcblx0XHRtaW4taGVpZ2h0OjQwMHB4O1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWluLXNjcmVlbigxMjAxcHgpIHtcblx0XHRcdGZvbnQtc2l6ZToyMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MjhweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig5OTJweCkge1xuXHRcdFx0Zm9udC1zaXplOjE5cHg7XG5cdFx0XHRsaW5lLWhlaWdodDoyMnB4O1xuXHRcdFx0bWluLWhlaWdodDozNDBweDtcblx0XHRcdHBhZGRpbmc6MTVweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig3NjhweCkge1xuXHRcdFx0bWluLWhlaWdodDppbmhlcml0O1xuXHRcdFx0Ly8gZm9udC1zaXplOjIycHg7XG5cdFx0XHQvLyBsaW5lLWhlaWdodDoyOHB4O1xuXHRcdH1cblx0fVxufVxuIiwiQGluY2x1ZGUgY29tcG9uZW50KCdkaXNwbGF5Jykge1xuXHRoZWlnaHQ6Y2FsYygxMDB2aCAtIDYzcHgpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL2JnLWRpc3BsYXkuanBnJyk7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0d2lkdGg6MTAwJTtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2JyYW5kJykge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbToxMDBweDtcblx0XHRpbWd7XG5cdFx0XHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0XHR3aWR0aDo5MCU7XG5cdFx0XHRcdG1heC13aWR0aDo0NTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgnYnRuJykge1xuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZmZjtcblx0XHRib3JkZXI6IDZweCBzb2xpZCAkY29sb3JfcHJpbWFyeTtcblx0XHRwYWRkaW5nOjE1cHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0bGluZS1oZWlnaHQ6MTAwJTtcblx0XHRjb2xvcjokY29sb3JfcHJpbWFyeTtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdFx0Zm9udC1zaXplOjM0cHg7XG5cdFx0c3Bhbntcblx0XHRcdGZvbnQtd2VpZ2h0OjMwMDtcblx0XHRcdGZvbnQtZmFtaWx5OiRmb250X2Jhc2UwMztcblx0XHRcdG1hcmdpbi1yaWdodDo0cHg7XG5cdFx0fVxuXHRcdHN0cm9uZ3tcblx0XHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHRcdGZvbnQtZmFtaWx5OiRmb250X2Jhc2UwMjtcblx0XHR9XG5cdFx0Jjpob3Zlcntcblx0XHRcdGJhY2tncm91bmQtY29sb3I6JGNvbG9yX3ByaW1hcnk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGNvbXBvbmVudCgnaGVhZGVyJykge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiRjb2xvcl9wcmltYXJ5O1xuXHRwYWRkaW5nOjE1cHg7XG5cdHBvc2l0aW9uOmZpeGVkO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHR6LWluZGV4Ojk5ODtcbn1cbi5idG57XG5cdCYuYnRuLS1idXJkZXJ7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDozMHB4O1xuXHRcdGhlaWdodDoyMXB4O1xuXHRcdG1hcmdpbi10b3A6NnB4O1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWcvYnVyZ2VyLnBuZycpO1xuXHR9XG5cdCYuYnRuLS1pY29ue1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOjMwcHg7XG5cdFx0aGVpZ2h0OjMwcHg7XG5cdFx0bWFyZ2luOjAgM3B4O1xuXHRcdCY6bGFzdC1jaGlsZHtcblx0XHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdH1cblx0fVxuXHQmLmJ0bi0tZmFjZWJvb2t7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uL2ltZy9mYWNlYm9vay5wbmcnKTtcblx0fVxuXHQmLmJ0bi0teW91dHViZXtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL3lvdXR1YmUucG5nJyk7XG5cdH1cblx0Ji5idG4tLWluc3RhZ3JhbXtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL2luc3RhZ3JhbS5wbmcnKTtcblx0fVxuXHQmLmJ0bi0tdHdpdHRlcntcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL3R3aXR0ZXIucG5nJyk7XG5cdH1cblx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgdG9wO1xuXHRiYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0Jjpob3Zlcntcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBib3R0b207XG5cdH1cbn1cbmEuYnRue3RyYW5zaXRpb24tZHVyYXRpb246IDBzfVxuIiwiQGluY2x1ZGUgY29tcG9uZW50KCdjb250YWN0Jykge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0bWFyZ2luLXRvcDo1MHB4O1xuXHRAaW5jbHVkZSBlbGVtZW50KCdkYXRhJykge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHRleHQtYWxpZ246bGVmdDtcblx0XHRjb2xvcjojZmZmO1xuXHRcdHBhZGRpbmctbGVmdDozMDBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyMDBweDtcblx0XHRwYWRkaW5nLWJvdHRvbToxMDBweDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL2hvcm1pZ29uLnBuZycpO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbSAyMHB4O1xuXHRcdGJhY2tncm91bmQtc2l6ZTphdXRvIDIwMHB4O1xuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oOTkycHgpIHtcblx0XHRcdHBhZGRpbmc6MzBweCAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG5cdFx0Zm9udC1zaXplOjI2cHg7XG5cdFx0Zm9udC1mYW1pbHk6JGZvbnRfYmFzZTAyO1xuXHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgncGhvbmUnKSB7XG5cdFx0Y29sb3I6I2ZmZjtcblx0XHRmb250LXNpemU6NDBweDtcblx0XHRmb250LWZhbWlseTokZm9udF9iYXNlMDI7XG5cdFx0Zm9udC13ZWlnaHQ6NzAwO1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHRcdCY6aG92ZXJ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHRcdGNvbG9yOiMyNDUwMDM7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ3N3cCcpIHtcblx0XHRjb2xvcjojZmZmO1xuXHRcdGZvbnQtc2l6ZTo0MHB4O1xuXHRcdGZvbnQtZmFtaWx5OiRmb250X2Jhc2UwMjtcblx0XHRmb250LXdlaWdodDo3MDA7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nLWxlZnQ6NTBweDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL3dzcC5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6YXV0byAxMDAlO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgY2VudGVyO1xuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ21haWwnKSB7XG5cdFx0Y29sb3I6I2ZmZjtcblx0XHRmb250LXNpemU6MzBweDtcblx0XHRmb250LWZhbWlseTokZm9udF9iYXNlMDM7XG5cdFx0Zm9udC13ZWlnaHQ6MzAwO1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbToxNXB4O1xuXHRcdCY6aG92ZXJ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHRcdGNvbG9yOiMyNDUwMDM7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2Nhc2NvJykge1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6LTUwcHg7XG5cdFx0Ym90dG9tOi0zMHB4O1xuXHRcdHdpZHRoOjMzMHB4O1xuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oOTkycHgpIHtcblx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgbWF4LXNjcmVlbig5OTJweCkge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuIiwiQGluY2x1ZGUgY29tcG9uZW50KCdzZXJ2aWNlJykge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiMzZDgxMWM7XG5cdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWcvYmctdGV4dHVyZS5qcGcnKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgdG9wO1xuXHRiYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdHBhZGRpbmc6MzBweCAzMHB4IDA7XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuXHRcdGZvbnQtc2l6ZTo1MHB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRtYXJnaW4tYm90dG9tOjUwcHg7XG5cdFx0Y29sb3I6I2ZmZjtcblx0XHRzcGFue1xuXHRcdFx0Zm9udC13ZWlnaHQ6MzAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjEwcHg7XG5cdFx0XHRmb250LWZhbWlseTokZm9udF9iYXNlMDM7XG5cdFx0fVxuXHRcdHN0cm9uZ3tcblx0XHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHRcdGZvbnQtZmFtaWx5OiRmb250X2Jhc2UwMjtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWF4LXNjcmVlbig3NjhweCkge1xuXHRcdFx0Zm9udC1zaXplOjMwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDozNHB4O1xuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0XHRzcGFuLHN0cm9uZ3tcblx0XHRcdFx0Ly8gZGlzcGxheTpibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbToxNXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdsaXN0Jykge1xuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdGZvbnQtc2l6ZTowO1xuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0nKSB7XG5cdFx0cGFkZGluZzoyNXB4O1xuXHRcdHdpZHRoOjI1MHB4O1xuXHRcdGJvcmRlci1sZWZ0OnNvbGlkIDFweCAjZmZmO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGNvbG9yOiNmZmY7XG5cdFx0bWFyZ2luLXRvcDo3NXB4O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtaW4taGVpZ2h0OjIyMHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0QGluY2x1ZGUgbWluLXNjcmVlbigxMjAxcHgpIHtcblx0XHRcdHdpZHRoOjIyNXB4O1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtYXgtc2NyZWVuKDEyMDBweCkge1xuXHRcdFx0d2lkdGg6MTgwcHg7XG5cdFx0XHRwYWRkaW5nOjE1cHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oOTkycHgpIHtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdG1pbi1oZWlnaHQ6MTUwcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XG5cdFx0XHRwYWRkaW5nOjI1cHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNDgwcHgpIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRtaW4taGVpZ2h0OmluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2ljb24nKSB7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0dG9wOi03NXB4O1xuXHRcdGxlZnQ6MDtcblx0XHRpbWd7XG5cdFx0XHRoZWlnaHQ6NzVweDtcblx0XHRcdHdpZHRoOmF1dG87XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ3N1YnRpdGxlJykge1xuXHRcdGZvbnQtc2l6ZToyNnB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRtYXJnaW4tYm90dG9tOjIwcHg7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRmb250LWZhbWlseTogJGZvbnRfYmFzZTAzO1xuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQnKSB7XG5cdFx0Zm9udC1zaXplOjE4cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0Zm9udC13ZWlnaHQ6NzAwO1xuXHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHRmb250LWZhbWlseTogJGZvbnRfYmFzZTAyO1xuXHR9XG5cdEBpbmNsdWRlIG1heC1zY3JlZW4oOTkycHgpIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6YXV0byAxMDAlO1xuXHR9XG5cdEBpbmNsdWRlIG1heC1zY3JlZW4oNzY4cHgpIHtcblx0XHRwYWRkaW5nOjE1cHg7XG5cdH1cbn1cblxuQGluY2x1ZGUgb2JqZWN0KCdsaXN0Jykge1xuXHRmb250LXNpemU6MzBweDtcblx0Zm9udC13ZWlnaHQ6NzAwO1xuXHRjb2xvcjojRkZGO1xuXHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246Y2VudGVyO1xuXHRtYXJnaW46NTBweCAwO1xuXHRsaXtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nLWxlZnQ6MTVweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Zm9udC1mYW1pbHk6JGZvbnRfYmFzZTAyO1xuXHRcdGZvbnQtd2VpZ2h0OjcwMDtcblx0XHQmOmJlZm9yZXtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdC8vIHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0Ly8gbGVmdDowO1xuXHRcdFx0Ly8gdG9wOjA7XG5cdFx0XHQvLyBib3R0b206MDtcblx0XHRcdG1hcmdpbi10b3A6LTRweDtcblx0XHRcdG1hcmdpbi1yaWdodDo2cHg7XG5cdFx0XHRsaW5lLWhlaWdodDoyMHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0d2lkdGg6NnB4O1xuXHRcdFx0aGVpZ2h0OjZweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6I0ZGRjtcblx0XHRcdGJvcmRlci1yYWRpdXM6NnB4O1xuXG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNzY4cHgpIHtcblx0XHRcdHBhZGRpbmctbGVmdDowO1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0bWFyZ2luOjA7XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGNvbXBvbmVudCgnbW9kYWwnKSB7XG5cdHotaW5kZXg6MTAwMDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwdmg7XG5cdHRleHQtYWxpZ246Y2VudGVyO1xuXHRkaXNwbGF5Om5vbmU7XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2hlYWRlcicpIHtcblx0XHR0ZXh0LWFsaWduOnJpZ2h0O1xuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZmZjtcblx0XHRmb250LWZhbWlseTokZm9udF9iYXNlMDI7XG5cdFx0Ym9yZGVyOiA2cHggc29saWQgJGNvbG9yX3ByaW1hcnk7XG5cdFx0cGFkZGluZzoxMHB4O1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luOjEwcHggMDtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRsaW5lLWhlaWdodDoxMDAlO1xuXHRcdGNvbG9yOiRjb2xvcl9wcmltYXJ5O1xuXHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6MzBweDtcblx0XHRzdHJvbmd7XG5cdFx0XHRmb250LXdlaWdodDo3MDA7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNDgwcHgpIHtcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdjbG9zZScpIHtcblx0XHR3aWR0aDoyMnB4O1xuXHRcdGhlaWdodDoyNXB4O1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWcvY2xvc2UucG5nJyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIHRvcDtcblx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcblx0XHQmOmhvdmVye1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgYm90dG9tO1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdjb250YWluZXInKSB7XG5cdFx0d2lkdGg6NTAlO1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1heC13aWR0aDo3ODBweDtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7XG5cdFx0cGFkZGluZzoyMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6MDtcblx0XHRAaW5jbHVkZSBtYXgtc2NyZWVuKDc2OHB4KSB7XG5cdFx0XHR3aWR0aDo4MCU7XG5cdFx0XHRwYWRkaW5nOjE1cHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1heC1zY3JlZW4oNDgwcHgpIHtcblx0XHRcdHdpZHRoOjkwJTtcblx0XHR9XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGNvbXBvbmVudCgnbmF2Jykge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiRjb2xvcl9wcmltYXJ5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjEwcHg7XG5cdGxlZnQ6MDtcblx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEyMCUpO1xuXHR0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xuXHR6LWluZGV4Ojk5OTtcblx0QGluY2x1ZGUgc3RhdGUoJ2FjdGl2ZScpIHtcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgwJSk7XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgnaXRlbXMnKSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0fVxuXHRAaW5jbHVkZSBlbGVtZW50KCdpdGVtJykge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdH1cblx0QGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcblx0Y29sb3I6JHdoaXRlO1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRwYWRkaW5nOjhweCAxMHB4O1xuXHRmb250LXNpemU6MjJweDtcblx0Zm9udC1mYW1pbHk6JGZvbnRfYmFzZTAyO1xuXHRsaW5lLWhlaWdodDoxMDAlO1xuXHRcdCY6aG92ZXJ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IzQwN0IxMjtcblx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGVsZW1lbnQoJ2Nsb3NlJykge1xuXHRcdHNwYW57XG5cdFx0XHR3aWR0aDoxNXB4O1xuXHRcdFx0aGVpZ2h0OjE3cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vaW1nL2Nsb3NlLW1lbnUucG5nJyk7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0cGFkZGluZzoxMHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IzExMzcwMTtcblx0XHRyaWdodDotMzVweDtcblx0XHR0b3A6MDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXG5cdH1cbn1cbiIsIi8vIFRleHRcbkBpbmNsdWRlIHV0aWxpdHkoJ3RleHRfY2VudGVyJykge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AaW5jbHVkZSB1dGlsaXR5KCd0ZXh0X2xlZnQnKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AaW5jbHVkZSB1dGlsaXR5KCd0ZXh0X3JpZ2h0Jykge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbkBpbmNsdWRlIHV0aWxpdHkoJ3B1bGxfcmlnaHQnKSB7XG5cdGZsb2F0OiByaWdodDtcbn1cbkBpbmNsdWRlIHV0aWxpdHkoJ3B1bGxfbGVmdCcpIHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5AaW5jbHVkZSB1dGlsaXR5KCd1bmRlcmxpbmUnKSB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLy8gQm94ZXNcbkBpbmNsdWRlIHV0aWxpdHkoJ25vX2d1dHRlcicpIHtcblx0QGluY2x1ZGUgbm8tZ3V0dGVyO1xufVxuQGluY2x1ZGUgdXRpbGl0eSgndmVydGljYWxfY2VudGVyJykge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuQGluY2x1ZGUgdXRpbGl0eSgnbm9fbWFyZ2luJykge1xuXHRtYXJnaW46MDtcbn1cbkBpbmNsdWRlIHV0aWxpdHkoJ2NsZWFyZml4Jykge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR3aWR0aDoxMDAlO1xuXHRjbGVhcjpib3RoO1xufVxuXG4vLyBQb3NpdGlvbnNcbkBpbmNsdWRlIHV0aWxpdHkoJ2NvdmVyJykge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbkBpbmNsdWRlIHV0aWxpdHkoJ2NlbnRlcicpIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcblx0bWFyZ2luLXJpZ2h0OmF1dG87XG5cdGxlZnQ6MDtcblx0cmlnaHQ6MDtcblx0ei1pbmRleDoyO1xufVxuXG4vLyBJbWFnZXNcbkBpbmNsdWRlIHV0aWxpdHkoJ2ltZ19kaXNhYmxlZCcpIHtcblx0QGluY2x1ZGUgaW1nLWRpc2FibGVkO1xufVxuQGluY2x1ZGUgdXRpbGl0eSgnaW1nX3Jlc3BvbnNpdmUnKSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdG1heC13aWR0aDoxMDAlO1xuXHRoZWlnaHQ6YXV0bztcbn1cblxuLy8gdmlzaWJpbGl0eVxuQGluY2x1ZGUgdXRpbGl0eSgnaGlkZGVuX21vYmlsZScpIHtcblx0QGluY2x1ZGUgbWF4LXNjcmVlbig5OTFweCkge1xuXHRcdGRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7XG5cdH1cbn1cbkBpbmNsdWRlIHV0aWxpdHkoJ2hpZGRlbl9kZXNrdG9wJykge1xuXHRAaW5jbHVkZSBtaW4tc2NyZWVuKDk5MnB4KSB7XG5cdFx0ZGlzcGxheTpub25lIWltcG9ydGFudDtcblx0fVxufVxuXG4vLyBsaW5lXG5AaW5jbHVkZSB1dGlsaXR5KCdsaW5lJykge1xufVxuXG4vLyBCb3JkZXJcbkBpbmNsdWRlIHV0aWxpdHkoJ25vX2JvcmRlcicpIHtcblx0Ym9yZGVyOm5vbmUhaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSB1dGlsaXR5KCdsYXllcicpIHtcblx0cG9zaXRpb246Zml4ZWQ7XG5cdHRvcDowO1xuXHRsZWZ0OjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDoxMDB2aDtcblx0ei1pbmRleDo5OTk7XG5cdGJhY2tncm91bmQtY29sb3I6cmdiYSgjMDAwLCAuOCk7XG5cdGRpc3BsYXk6bm9uZTtcbn1cbiJdfQ== */
