@font-face{font-family:'nf-fontello';src:url("../src/core/font/nf-fontello.eot");src:url("../src/core/font/nf-fontello.eot#iefix") format('embedded-opentype'),url("../src/core/font/nf-fontello.woff") format('woff'),url("../src/core/font/nf-fontello.ttf") format('truetype'),url("../src/core/font/nf-fontello.svg#nf-fontello") format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CalibreWeb';font-weight:normal;font-style:normal;src:url("../src/core/font/CalibreWeb-Medium.eot");src:url("../src/core/font/CalibreWeb-Medium.eot") format('embedded-opentype'),url("../src/core/font/CalibreWeb-Medium.woff") format('woff'),url("../src/core/font/CalibreWeb-Medium.woff2") format('woff2')}@font-face{font-family:'CalibreWeb';font-weight:normal;font-style:italic;src:url("../src/core/font/CalibreWeb-MediumItalic.eot");src:url("../src/core/font/CalibreWeb-MediumItalic.eot") format('embedded-opentype'),url("../src/core/font/CalibreWeb-MediumItalic.woff") format('woff'),url("../src/core/font/CalibreWeb-MediumItalic.woff2") format('woff2')}@font-face{font-family:'CalibreWeb';font-weight:bold;font-style:normal;src:url("../src/core/font/CalibreWeb-Bold.eot");src:url("../src/core/font/CalibreWeb-Bold.eot") format('embedded-opentype'),url("../src/core/font/CalibreWeb-Bold.woff") format('woff'),url("../src/core/font/CalibreWeb-Bold.woff2") format('woff2')}@font-face{font-family:'CalibreWeb';font-weight:bold;font-style:italic;src:url("../src/core/font/CalibreWeb-BoldItalic.eot");src:url("../src/core/font/CalibreWeb-BoldItalic.eot") format('embedded-opentype'),url("../src/core/font/CalibreWeb-BoldItalic.woff") format('woff'),url("../src/core/font/CalibreWeb-BoldItalic.woff2") format('woff2')}html,body{margin:0;padding:0}body{min-width:320px;font-size:16px;font-family:'CalibreWeb','Calibre','Calibre Medium','Helvetica',Arial,sans-serif;text-align:center;-webkit-font-smoothing:antialiased;color:#333;overflow-x:hidden}h1{font-weight:normal}h2{font-weight:normal}h3{font-weight:normal}h4{font-weight:normal}h5{font-weight:normal}h6{font-weight:normal}article{position:relative}address{font-style:normal}a,input,button{-webkit-transition:0.2s;transition:0.2s;cursor:pointer;border-radius:0}p,.body-copy,.work__proj-cats{font-size:1.3125em;line-height:1.619047619047619em;letter-spacing:.05em}@media (max-width:720px){p,.body-copy,.work__proj-cats{font-size:1.125em}}@media (max-width:640px){p,.body-copy,.work__proj-cats{font-size:1em}}p p,.body-copy p,.work__proj-cats p{font-size:1em}.body-copy,.work__proj-cats{margin:1em auto;max-width:36.904761904761905em}.sr{position:absolute;width:1px;height:1px;border:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.main{position:relative;z-index:10}.container{margin:0 auto;padding:0 75px}@media (max-width:1200px){.container{padding:0 50px}}@media (max-width:720px){.container{padding:0 35px}}@media (max-width:640px){.container{padding:0 10px}}.full-link{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%}.cta-front,.full-link a{position:relative;z-index:5;-webkit-backface-visibility:hidden;backface-visibility:hidden}.cta--box{display:inline-block;margin:.5em auto;padding:.8em 1.5em;color:#fff;border:3px solid #fff;font-size:1.125em;line-height:1.2em;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;font-weight:bold}.cta--box:hover{background:#fff}@media (max-width:640px){.cta--box{font-size:.9375em}}.content{margin-top:130px;min-height:70vh}@media (max-width:640px){.content{margin-top:96px}}.aligncenter{display:block;margin:0 auto}.gothic,.page-header,.page-subheader,.work__proj-title,.proj__prev,.proj__next,.news__title,.about__press-title{font-size:1em;line-height:1.2em;letter-spacing:.124em;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;text-transform:uppercase}.page-header,.page-subheader{position:relative;z-index:10}.page-subheader{font-size:4.6875em}@media (max-width:2000px){.page-subheader{font-size:3.75em}}@media (max-width:1200px){.page-subheader{font-size:3em}}@media (max-width:720px){.page-subheader{font-size:2em}}@media (max-width:640px){.page-subheader{font-size:1.625em}}.page-subheader--black{color:#333 !important}.page-subheader--white{color:#fff !important}.page-header{font-size:6.5625em;color:#414141}@media (max-width:1200px){.page-header{font-size:4.5em}}@media (max-width:720px){.page-header{font-size:3em}}@media (max-width:640px){.page-header{font-size:1.875em}}.page-header--max{font-size:9em}@media (max-width:2000px){.page-header--max{font-size:7.1875em}}@media (max-width:1200px){.page-header--max{font-size:5.25em}}@media (max-width:720px){.page-header--max{font-size:3.25em}}@media (max-width:640px){.page-header--max{font-size:2em}}.page-header--long{margin:0 auto;max-width:26.666666666666668em;font-size:2.8125em;line-height:1.688888888888889em;letter-spacing:.05em;font-family:'CalibreWeb','Calibre','Calibre Medium','Helvetica',Arial,sans-serif;text-transform:none}@media (max-width:720px){.page-header--long{font-size:1.375em;line-height:1.5em;letter-spacing:.05em}}.top-header{position:fixed;top:0;left:0;width:100%;overflow:hidden;z-index:1000;background:none;-webkit-transition:background-color 0.2s;transition:background-color 0.2s}@media (max-width:720px){.top-header--show{right:0;bottom:0;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;background-color:rgba(255,255,255,0.9);-webkit-transition:background-color 0.2s;transition:background-color 0.2s}}.top-header__logo{max-width:100%;height:100%;width:auto}.top-header__logo-link{margin:26px 0 0;float:left;height:75px}@media (max-width:640px){.top-header__logo-link{margin:17px 5px 0;height:59px}}.top-header__main{position:relative;float:right;text-align:right}@media (max-width:720px){.top-header__main{float:none;text-align:center;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}}.top-header__main__list{margin:0;padding:0;list-style-type:none;display:inline-block;margin:38px 20px 35px;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;font-size:1.125em;line-height:1.2em;letter-spacing:.075em;text-transform:uppercase;vertical-align:middle;-webkit-transition:all 1s;transition:all 1s;-webkit-transform:translateX(75px);-ms-transform:translateX(75px);transform:translateX(75px);white-space:nowrap;overflow:hidden;max-width:90%}@media (max-width:720px){.top-header__main__list{display:none}}.top-header--collapse .top-header__main__list{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);max-width:0}@media (max-width:720px){.top-header--collapse .top-header__main__list{display:none}}.top-header--show .top-header__main__list{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;max-width:100%}@media (max-width:720px){.top-header--show .top-header__main__list{font-size:3em;width:100%;display:block;margin:0;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;-webkit-transform:none;-ms-transform:none;transform:none;color:#fff}}@media (max-width:640px){.top-header--show .top-header__main__list{font-size:2.625em}}.top-header__main__item{display:inline-block;margin:0 10px}@media (max-width:1000px){.top-header__main__item{margin:0 5px}}@media (max-width:720px){.top-header__main__item{display:block;padding:2vh 0}}.top-header__main__link{display:block;padding:14px 10px 4px;text-decoration:none;color:#333}.top-header__main__link__txt{display:inline-block;border-bottom:solid 2px transparent}.top-header__main__link:hover .top-header__main__link__txt{border-color:transparent}.top-header__hamburger{float:right;display:block;margin:3.2em 0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;width:35px;vertical-align:middle;-webkit-transition:all 1s, opacity 0.2s;transition:all 1s, opacity 0.2s;-webkit-transform:translateX(300%);-ms-transform:translateX(300%);transform:translateX(300%);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0)}.top-header--collapse .top-header__hamburger{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}@media (max-width:720px){.top-header__hamburger{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;-webkit-transform:none;-ms-transform:none;transform:none}}@media (max-width:640px){.top-header__hamburger{margin:21px 5px}}.top-header__hamburger-line{display:block;margin:12px 0;width:35px;height:2px;background:#333;-webkit-transform-origin:center;-moz-transform-origin:center;-o-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;-webkit-transition:all 0.2s, transform 0.5s;transition:all 0.2s, transform 0.5s}.top-header--show .top-header__hamburger-line:nth-child(1){-webkit-transform:translateY(14px) rotate(-45deg);-ms-transform:translateY(14px) rotate(-45deg);transform:translateY(14px) rotate(-45deg)}.top-header--show .top-header__hamburger-line:nth-child(3){-webkit-transform:translateY(-14px) rotate(45deg);-ms-transform:translateY(-14px) rotate(45deg);transform:translateY(-14px) rotate(45deg)}.top-header--show .top-header__hamburger-line:nth-child(2){opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);-webkit-transition:all 0.1s;transition:all 0.1s}.current-menu-item > a .top-header__main__link__txt,.single-news .menu-item-object-news > a .top-header__main__link__txt{border-color:#333}.current-menu-item > a:hover .top-header__main__link__txt,.single-news .menu-item-object-news > a:hover .top-header__main__link__txt{border-color:inherit}.footer{margin-top:40px;padding:80px 0 60px;background:#fff}@media (max-width:720px){.footer{margin-top:30px;padding:60px 0 50px}}@media (max-width:640px){.footer{margin-top:20px;padding:30px 0 20px}}.footer__section{display:inline-block;margin:40px 0;width:25%;vertical-align:top;text-align:center;font-size:1em;line-height:1.6875em;letter-spacing:.05em}@media (max-width:1200px){.footer__section{width:50%}}@media (max-width:720px){.footer__section{display:block;margin:40px auto 50px;width:95%}}.footer__section a{text-decoration:none;color:#333}.footer__section--form form{margin:0 auto;max-width:14em}.footer__section--form input,.footer__section--form button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;font-size:1em;font-family:'CalibreWeb','Calibre','Calibre Medium','Helvetica',Arial,sans-serif;letter-spacing:.05em;border-bottom:3px solid #333;height:1em;padding-bottom:.5em;vertical-align:bottom}.footer__section--form input{width:calc(100% - 2em)}.footer__section--form input::-webkit-input-placeholder{color:#333}.footer__section--form input::-moz-placeholder{color:#333}.footer__section--form input:-ms-input-placeholder{color:#333}.footer__section--form input:-moz-placeholder{color:#333}.footer__section--form button{padding:0;margin:0;width:1em;height:2em}.footer__section--form button:after{font-family:'nf-fontello';content:'\E802';font-size:.75em;font-weight:900;line-height:2em}.footer__section--form button:focus{color:#fff}.footer__section--form button:hover{background:#333;color:#fff}.footer__section-header{margin-bottom:.6111111111111112em;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;font-size:1.125em;line-height:1.2em;letter-spacing:.1em;font-size:1.125em;text-transform:uppercase}.footer__list{margin:0;padding:0;list-style-type:none}.footer__list-item{display:inline-block;margin:0 .4em}[nf-slider]{position:relative}[nf-slider] figure{position:relative;margin:0 auto}[nf-slider] img{display:block;margin:0 auto;-webkit-transition:opacity 0.2s;transition:opacity 0.2s;-webkit-backface-visibility:hidden;backface-visibility:hidden}[nf-slider] img.ng-hide{position:absolute;left:50%;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);top:0}.slider__prev,.slider__next{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;margin:0;padding:0;position:absolute;top:0;bottom:0;font-size:5.3125em;width:13.75%;-webkit-transition:0.2s;transition:0.2s}@media (max-width:1000px){.slider__prev,.slider__next{font-size:2.8125em}}@media (max-width:640px){.slider__prev,.slider__next{font-size:1.875em}}.slider__prev:after,.slider__next:after{font-family:'nf-fontello'}.slider__prev:hover,.slider__next:hover{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";-webkit-filter:alpha(opacity=80);filter:alpha(opacity=80)}.slider__prev{left:0}.slider__prev:after{content:'\E801'}.slider__next{right:0}.slider__next:after{content:'\E802'}.feed{white-space:nowrap}.feed-item{width:20%;height:auto}@media (max-width:1000px){.feed-item{width:33.333%}}@media (max-width:640px){.feed-item{width:50%}}@media (max-width:500px){.feed-item{width:100%}}.feed-item--wide{width:40%}@media (max-width:1000px){.feed-item--wide{width:66.666%}}@media (max-width:640px){.feed-item--wide{width:100%}}.feed-item img{display:block;width:calc(100% - 20px);margin:0 10px 20px;height:auto;-webkit-transition:all 0.4s ease;transition:all 0.4s ease}.feed__loading{width:80px;height:auto;max-width:20%;-webkit-animation:workIntroGradient 5s ease infinite;animation:workIntroGradient 5s ease infinite}.feed__modal{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:rgba(255,255,255,0.95)}.feed__modal h2{margin-bottom:0;text-transform:uppercase;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;font-size:3.5em;line-height:1.2em;letter-spacing:.124em}@media (max-width:1200px){.feed__modal h2{font-size:3em}}@media (max-width:1000px){.feed__modal h2{font-size:2.625em}}@media (max-width:720px){.feed__modal h2{font-size:1.875em}}@media (max-width:640px){.feed__modal h2{font-size:1.25em}}.feed__modal.ng-enter,.feed__modal.ng-leave{-webkit-transition:0.4s ease all;transition:0.4s ease all}.feed__modal.ng-enter,.feed__modal.ng-leave.ng-leave-active{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0)}.feed__modal.ng-enter.ng-enter-active,.feed__modal.ng-leave{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.feed__modal button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:#333;text-align:center;width:20%;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}@media (max-width:720px){.feed__modal button{width:10%}}.feed__modal button:focus{outline:0}.feed__modal-inner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-height:85vh;overflow:scroll;width:60%;padding:15vh 20% 0}@media (max-width:720px){.feed__modal-inner{width:80%;padding:10vh 10% 0}}.feed__modal-inner img{width:auto;max-width:100%;height:auto;max-height:70vh}.feed__modal-next{right:0}.feed__modal-next:before{content:'\E802'}.feed__modal-prev{left:0}.feed__modal-prev:before{content:'\E801'}.feed__modal-prev,.feed__modal-next{padding:0;position:absolute;top:50%;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);z-index:1000;font-size:5.3125em;line-height:2em;font-family:'nf-fontello'}@media (max-width:1000px){.feed__modal-prev,.feed__modal-next{font-size:2.8125em}}@media (max-width:640px){.feed__modal-prev,.feed__modal-next{font-size:1.875em}}.feed__modal-close{position:absolute;padding:0;top:6%;right:0;z-index:1000;font-size:7.5em;line-height:1.2em}@media (max-width:1000px){.feed__modal-close{top:10%;font-size:3.75em}}@media (max-width:640px){.feed__modal-close{top:12%;right:1%;font-size:2.5em}}.feed bottom{position:absolute;bottom:0}.hide{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0)}.show{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.modal-overflow{overflow-y:hidden}.fltr{margin:2.916666666666667em auto;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;font-size:1.5em;line-height:1.2em;letter-spacing:.124em;text-transform:uppercase}@media (max-width:720px){.fltr{font-size:1.125em}}@media (max-width:640px){.fltr{margin:2.5em auto;font-size:1em}}.fltr__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;font-family:'Titling Gothic FB Comp Med','TitlingGothicFBCond-Medium','Trade Gothic','News Gothic','HelveticaNeue-CondensedBold','Helvetica',Arial,sans-serif;font-size:1.5em;line-height:1.2em;letter-spacing:.124em;font-size:1em;text-transform:uppercase}@media (max-width:720px){.fltr__btn{font-size:1.125em}}@media (max-width:640px){.fltr__btn{font-size:1em}}.fltr__btn:after{content:'\E803';display:inline-block;font-family:'nf-fontello';font-size:.5em;padding:0 .25em;width:1.5em;vertical-align:text-bottom;-webkit-transition:0.2s;transition:0.2s}.fltr--open .fltr__btn:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fltr__cur,.fltr__link{padding-bottom:.16666666666666666em;color:#333;border-bottom:.16666666666666666em solid #333;text-decoration:none}.fltr__link{border-bottom-color:transparent}a.fltr__link:hover{color:#333;border-bottom-color:#333}.fltr__list{margin:0;padding:0;list-style-type:none;position:absolute;left:50%;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);-webkit-transition:0.2s;transition:0.2s;z-index:10}.fltr--open .fltr__list{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.fltr__item{margin:1.2em auto 1px}.fltr__link{display:inline-block}.work__intro{padding:0 10%;text-align:center;-webkit-animation:workIntroGradient 5s ease infinite;animation:workIntroGradient 5s ease infinite}@media (max-width:640px){.work__intro{padding:0 5%}}.work__intro-txt{margin:0 auto 60px;padding:3.333333333333333em 0;color:#fff}@media (max-width:640px){.work__intro-txt{margin:0 auto 20px;padding:1.777777777777778em 0}}.work__grid{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;margin:0 .9090909090909091%;width:98.18181818181819%;max-width:2475px;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:1400px){.work__grid{display:block;margin:0 auto}}.work__proj{margin:3em 1.616161616161616%;width:28.484848484848484vw;max-width:28.484848484848484%;cursor:pointer}@media (max-width:1400px){.work__proj{width:100%;max-width:80%;margin:0 auto 3em}.work__proj:last-child{margin-bottom:0}}@media (max-width:1000px){.work__proj{max-width:100%}}.work__proj a{text-decoration:none}.work__proj:nth-child(odd) .work__proj-hvr{left:0;right:100%}.work__proj:nth-child(even) .work__proj-hvr{right:0;left:100%}.work__proj:nth-child(odd) a:hover .work__proj-hvr{right:0}.work__proj:nth-child(even) a:hover .work__proj-hvr{left:0}.work__proj--tall{width:auto;height:28.484848484848484vw;max-height:705px}@media (max-width:1400px){.work__proj--tall{width:100%;height:auto;max-height:none}}.work__proj--sqr{width:21.01010101010101vw;max-width:520px;height:auto}@media (max-width:1400px){.work__proj--sqr{width:100%;max-width:none;height:auto}}.work__proj-hvr,.work__proj-txt{-webkit-transition:0.2s;transition:0.2s}.work__proj-img{display:block;margin:0 auto;width:auto;height:auto;max-width:100%;max-height:100%}.work__proj-title{font-size:3em;margin:.1em 0}@media (max-width:2000px){.work__proj-title{font-size:2.25em}}@media (max-width:1400px){.work__proj-title{font-size:1.5em;line-height:1.5em;letter-spacing:.125em}}.work__proj-cats{font-size:1.625em;margin:0 auto}@media (max-width:2000px){.work__proj-cats{font-size:1em}}@media (max-width:1400px){.work__proj-cats{font-size:.875em;line-height:1.571428571428571em;letter-spacing:.05em}}.work__proj-txt{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:92%;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);color:#fff}.work__proj:hover .work__proj-txt{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}@media (max-width:1400px){.work__proj-txt{position:relative;top:0;left:0;width:100%;padding:1em 0 0;color:#333;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none;text-decoration:none}}.work__proj-hvr{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-webkit-filter:alpha(opacity=0);filter:alpha(opacity=0);background:#006dc0}@media (max-width:1400px){.work__proj-hvr{display:none}}.work__proj:hover .work__proj-hvr{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";-webkit-filter:alpha(opacity=90);filter:alpha(opacity=90)}@-moz-keyframes workIntroGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@-webkit-keyframes workIntroGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@-o-keyframes workIntroGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@keyframes workIntroGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}.proj__header,.proj__copy{width:94%}.proj__header{margin-bottom:.25em;margin-left:auto;margin-right:auto}.proj__copy{margin:4.761904761904762em auto;width:36.904761904761905em;max-width:100%;text-align:left}.proj__header + .proj__copy{margin-top:1em}.proj__fig{margin:6.25em auto;width:92%;max-width:1052px}@media (max-width:640px){.proj__fig{width:100%;margin:3.125em auto}}.proj__fig--full{width:100%;max-width:1600px}.proj__fig--force-full{max-width:none}.proj__img{display:block;margin:0 auto;width:100%;height:auto}.proj__img--two-up{display:inline-block;width:47.1875%;vertical-align:middle}.proj__img--two-up:first-child{margin-right:5.625%}.proj__gllry button{color:#fff;text-shadow:0 0 2em rgba(51,51,51,0.75)}.proj__iframe{position:relative;margin:6.25em auto;width:92%;max-width:1052px}@media (max-width:640px){.proj__iframe{width:100%;margin:3.125em auto}}.proj__iframe--full{width:100%;max-width:1600px}.proj__embed[data-source*="youtube"],.proj__embed[data-source*="vimeo"],.proj__embed[data-source*="kickstarter"]{padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%;height:auto}.proj__embed[data-source*="youtube"] iframe,.proj__embed[data-source*="vimeo"] iframe,.proj__embed[data-source*="kickstarter"] iframe,.proj__embed[data-source*="youtube"] object,.proj__embed[data-source*="vimeo"] object,.proj__embed[data-source*="kickstarter"] object,.proj__embed[data-source*="youtube"] embed,.proj__embed[data-source*="vimeo"] embed,.proj__embed[data-source*="kickstarter"] embed{position:absolute;top:0;left:0;width:100%;height:100%}.proj__embed[data-source*="instagram"],.proj__embed[data-source*="tumblr"],.proj__embed[data-source*="twitter"],.proj__embed[data-source*="flickr"],.proj__embed[data-source*="meetup"]{position:relative;height:auto}.proj__embed[data-source*="instagram"] iframe,.proj__embed[data-source*="tumblr"] iframe,.proj__embed[data-source*="twitter"] iframe,.proj__embed[data-source*="flickr"] iframe,.proj__embed[data-source*="meetup"] iframe,.proj__embed[data-source*="instagram"] object,.proj__embed[data-source*="tumblr"] object,.proj__embed[data-source*="twitter"] object,.proj__embed[data-source*="flickr"] object,.proj__embed[data-source*="meetup"] object,.proj__embed[data-source*="instagram"] embed,.proj__embed[data-source*="tumblr"] embed,.proj__embed[data-source*="twitter"] embed,.proj__embed[data-source*="flickr"] embed,.proj__embed[data-source*="meetup"] embed{margin:0 auto !important}.proj__embed[data-source*="twitter"] [id*="twitter-widget"]{margin-left:auto;margin-right:auto}.proj__embed[data-source*="dailymotion"],.proj__embed[data-source*="soundcloud"]{padding-bottom:57%;height:0;overflow:hidden;max-width:100%;height:auto}.proj__embed[data-source*="dailymotion"] iframe,.proj__embed[data-source*="soundcloud"] iframe,.proj__embed[data-source*="dailymotion"] object,.proj__embed[data-source*="soundcloud"] object,.proj__embed[data-source*="dailymotion"] embed,.proj__embed[data-source*="soundcloud"] embed{position:absolute;top:0;left:0;width:100%;height:100%}.proj__foot{margin-top:13.75em}@media (max-width:720px){.proj__foot{margin-top:8.75em}}@media (max-width:640px){.proj__foot{margin-top:5em}}.proj__foot__name{display:block;margin-top:.2962962962962963em}@media (max-width:1200px){.proj__foot__name{display:none}}@media (max-width:720px){.proj__foot__header{font-size:1.25em}}@media (max-width:640px){.proj__foot__header{font-size:.875em}}.proj__prev,.proj__next{display:block;position:relative;color:#fff;text-decoration:none;font-size:1.6875em;line-height:1.2em;padding:1.875em 1em 1.625em;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";-webkit-filter:alpha(opacity=80);filter:alpha(opacity=80)}@media (max-width:720px){.proj__prev,.proj__next{font-size:1.375em}}@media (max-width:640px){.proj__prev,.proj__next{font-size:1.125em}}.proj__prev:after,.proj__next:after{content:'\E803';position:absolute;top:50%;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);font-family:'nf-fontello';font-size:2em}@media (max-width:640px){.proj__prev:after,.proj__next:after{font-size:1.5em}}.proj__prev:hover,.proj__next:hover{color:#fff;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.proj__prev--half,.proj__next--half{display:inline-block;width:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.proj__prev:after{content:'\E801';left:6%}.proj__next:after{content:'\E802';right:6%}.news__artcl{position:relative}.news__artcl--recent{margin:0 8.96875%;width:29.25%;max-width:468px}.news__artcl--recent:nth-child(odd){margin-top:-28em}@media (max-width:1000px){.news__artcl--recent:nth-child(odd){margin-top:0}}@media (max-width:1000px){.news__artcl--recent{width:100%;margin:0 auto}}.news__fig{margin:0 auto;max-width:1368px;width:92%}@media (max-width:640px){.news__fig{width:100%}}.news__img{display:block;margin:0 auto;width:78.0701754385965%;height:auto}.news__prev,.news__next{width:10.964912280701753%}.news__title{font-size:3.25em;line-height:1.288461538461539em;margin:.75em auto .5em;padding:0 10px;max-width:19.23076923076923em}@media (max-width:1200px){.news__title{font-size:3em}}@media (max-width:1000px){.news__title{font-size:2.625em}}@media (max-width:720px){.news__title{font-size:1.875em}}@media (max-width:640px){.news__title{font-size:1.25em}}.news__title--recent{margin:.25em auto 0;font-size:2.375em;line-height:1.578947368421053em;letter-spacing:.125em}@media (max-width:1000px){.news__title--recent{font-size:2em}}@media (max-width:720px){.news__title--recent{margin:.25em 10px 0;font-size:1.625em}}@media (max-width:640px){.news__title--recent{font-size:1.25em}}.news__date{display:block;margin:.25em auto;font-size:1.625em;line-height:1.2em;letter-spacing:.1em;font-weight:bold}.news__copy{margin-bottom:6.666666666666667em}@media (max-width:720px){.news__copy{margin:1em 10px 3.809523809523809em}}@media (max-width:640px){.news__copy{margin:1em 10px 2.857142857142857em}}.news__foot,.about__news{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-box;display:inline-flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;max-width:1510px}@media (max-width:1000px){.news__foot,.about__news{display:block}}.news__foot > header,.about__news > header{width:auto;width:100%;margin-right:0;-webkit-align-self:flex-start;align-self:flex-start;-ms-flex-item-align:start}.news__foot h3,.about__news h3{margin-top:0;margin-left:8.96875%;text-align:left;max-width:41.03125%}@media (max-width:640px){.news__foot h3,.about__news h3{max-width:80%}}.news__thumb{display:block;margin:0 auto 1.5em;width:100%;height:auto}.news__load-more{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;font-size:2.375em}.news__load-more:hover{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";-webkit-filter:alpha(opacity=80);filter:alpha(opacity=80)}.about__content{display:block;margin:0 auto;max-width:1440px}.about__content h1,.about__content h2{margin-bottom:0}.about__content--flex{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.about__area{text-align:left}.about__area-img{display:block;height:auto;max-width:100%;width:auto}.about__we-are,.about__studio{max-width:720px}@media (max-width:1200px){.about__we-are,.about__studio{margin-left:auto;margin-right:auto}}.about__we-are img,.about__studio img{margin-top:3.125em;margin-bottom:5.625em}@media (max-width:1000px){.about__we-are img,.about__studio img{margin-top:2.5em;margin-bottom:4.375em}}@media (max-width:720px){.about__we-are img,.about__studio img{margin-top:1.875em;margin-bottom:3.125em}}.about__we-are{width:50%;-webkit-box-ordinal-group:2;-moz-box-ordinal-group:2;-o-box-ordinal-group:2;-ms-flex-order:2;-webkit-order:2;order:2}@media (max-width:1200px){.about__we-are{width:100%;-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-o-box-ordinal-group:1;-ms-flex-order:1;-webkit-order:1;order:1}}.about__we-are h1{margin-top:0}.about__studio{width:37.22222222222222%;margin-right:3.472222222222222%}@media (max-width:1200px){.about__studio{margin-right:auto;width:100%;-webkit-box-ordinal-group:2;-moz-box-ordinal-group:2;-o-box-ordinal-group:2;-ms-flex-order:2;-webkit-order:2;order:2}}@media (min-width:1201px){.about__studio h2{margin-top:0}}.about__clients{position:relative;width:100%;margin:10% auto;-webkit-box-ordinal-group:3;-moz-box-ordinal-group:3;-o-box-ordinal-group:3;-ms-flex-order:3;-webkit-order:3;order:3}@media (max-width:640px){.about__clients{margin:0 auto 8%}}.about__clients header{padding:20% 0}@media (max-width:640px){.about__clients header{padding:0}}.about__logos{margin:0;padding:0;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;height:100%;-webkit-perspective:250px;-moz-perspective:250px;-ms-perspective:250px;perspective:250px}@media (max-width:1000px){.about__logos{width:95%}}@media (max-width:640px){.about__logos{position:relative;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;width:100%;left:0}}.about__logo{width:16%;height:auto;z-index:5}@media (max-width:640px){.about__logo{width:23.333333333333332%;margin:1em 5%;vertical-align:middle}}.about__logo:nth-child(1){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(1){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(2){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(2){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(3){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(3){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(4){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(4){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(5){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(5){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(6){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(6){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(7){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(7){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(8){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(8){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(9){position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (max-width:640px){.about__logo:nth-child(9){position:static;-webkit-transform:none;-ms-transform:none;transform:none}}.about__logo:nth-child(7){top:5%;left:15%}.about__logo:nth-child(3){top:22%;left:32%}.about__logo:nth-child(5){top:15%;left:57%}.about__logo:nth-child(1){top:28%;left:85%}.about__logo:nth-child(9){top:55%;left:90%}.about__logo:nth-child(4){top:75%;left:75%}.about__logo:nth-child(6){top:90%;left:46%}.about__logo:nth-child(2){top:75%;left:25%}.about__logo:nth-child(8){left:5%}.about__promo{display:block;margin:10em auto 20em;width:100%;max-width:1222px;-webkit-box-ordinal-group:4;-moz-box-ordinal-group:4;-o-box-ordinal-group:4;-ms-flex-order:4;-webkit-order:4;order:4;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;-o-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}@media (max-width:1200px){.about__promo{margin:9em auto 18em}}@media (max-width:1000px){.about__promo{display:block;margin:8em auto 15em}}@media (max-width:720px){.about__promo{margin:6em auto 12em}}@media (max-width:640px){.about__promo{margin:4em auto 8em}}@media (min-width:1001px){.about__promo h4{margin:0}}.about__promo-img{display:block;width:51.71849427168576%;margin-right:4.091653027823241%;max-width:632px}@media (max-width:1000px){.about__promo-img{width:100%;margin-left:auto;margin-right:auto}}.about__promo-txt{width:38.46153846153847%;max-width:470px}@media (max-width:1000px){.about__promo-txt{width:100%;margin-left:auto;margin-right:auto}}.about__press{max-width:1222px}h2.about__press-header{margin-bottom:.5em}.about__press-item{display:inline-block;width:44.02618657937807%;max-width:538px;margin-right:4.091653027823241%;vertical-align:top}@media (max-width:1000px){.about__press-item{width:100%;margin-right:0}}.about__press-title{font-size:2.375em;margin:.6578947368421053em 0 0}@media (max-width:1000px){.about__press-title{font-size:2em}}@media (max-width:720px){.about__press-title{font-size:1.625em}}@media (max-width:640px){.about__press-title{font-size:1.25em}}.about__press-title a{text-decoration:none;color:#333}.about__press-txt{margin:1em 0 1.19047619047619em}.about__btm-img{margin:8% auto 0}.about__btm-img img{display:block;width:100%;height:auto}.about__we-are .body-copy,.about__studio .body-copy{margin-left:0;max-width:536px}.contact__email,.contact__sec address,.contact__sec form{font-size:2.25em;line-height:1.444444444444444em;letter-spacing:.05em}@media (max-width:1200px){.contact__email,.contact__sec address,.contact__sec form{font-size:2em}}@media (max-width:720px){.contact__email,.contact__sec address,.contact__sec form{font-size:1.75em}}@media (max-width:640px){.contact__email,.contact__sec address,.contact__sec form{font-size:1.25em}}.contact__bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;-webkit-animation:contactGradient 5s ease infinite;animation:contactGradient 5s ease infinite}.contact__content{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;letter-spacing:.05em;min-height:calc(100vh - 130px)}@media (max-width:640px){.contact__content{min-height:calc(100vh - 96px)}}.contact__content a{color:#fff;text-decoration:none;font-weight:bold}.contact__content a:focus{outline:1px #fff dotted}.contact__content a:hover{color:#fff;text-decoration:underline}.contact__content header{display:block;width:100%}.contact__title{display:block;width:100%;margin:0 auto;padding-top:.5em;font-size:8.75em;line-height:1em}@media (max-width:1200px){.contact__title{font-size:6.25em}}@media (max-width:720px){.contact__title{font-size:3.75em}}@media (max-width:640px){.contact__title{font-size:2.5em}}.contact__ph{margin:0 auto .1em;font-family:'CalibreWeb','Calibre','Calibre Medium','Helvetica',Arial,sans-serif;font-weight:bold;color:#fff;letter-spacing:.02em;line-height:1em}.contact__email{margin:0 auto 2em}@media (max-width:640px){.contact__email{margin:0 auto 1.5em}}.contact__sec{display:inline-block;margin:5em auto;width:33.333333333333336%;vertical-align:top}@media (max-width:1400px){.contact__sec{margin:3em auto;width:50%}}@media (max-width:1200px){.contact__sec{width:100%}}@media (max-width:720px){.contact__sec{margin:2em auto}}@media (max-width:640px){.contact__sec{margin:1.5em auto}}.contact__sec header{margin-bottom:.4em}.contact__sec address{margin-bottom:.3em}.contact__sec a,.contact__sec aside{text-transform:uppercase;font-size:1.375em;line-height:1.2em;letter-spacing:.1em;font-weight:bold;color:#fff}@media (max-width:720px){.contact__sec a,.contact__sec aside{font-size:1.25em}}@media (max-width:640px){.contact__sec a,.contact__sec aside{font-size:1.125em}}.contact__sec form{display:inline-block;border:4px solid #333;margin:0 auto .6em}@media (max-width:640px){.contact__sec form{display:block;max-width:17em}}.contact__sec form input,.contact__sec form button{font-size:1em;font-family:'CalibreWeb','Calibre','Calibre Medium','Helvetica',Arial,sans-serif}.contact__sec form input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;background:none;padding:.4em 0 .4em .6em;max-width:8em}.contact__sec form input:focus{background:rgba(255,255,255,0.2)}@media (max-width:640px){.contact__sec form input{max-width:76%;width:76%;padding:.6em 0 .6em 8%}}.contact__sec form input::-webkit-input-placeholder{color:#333}.contact__sec form input::-moz-placeholder{color:#333}.contact__sec form input:-ms-input-placeholder{color:#333}.contact__sec form input:-moz-placeholder{color:#333}.contact__sec form button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;outline:none;cursor:pointer;padding:0;margin:0;width:1.5em;height:2em}.contact__sec form button:after{font-family:'nf-fontello';content:'\E802'}.contact__sec form button:focus{color:#fff}.contact__sec form button:hover{background:#333;color:#fff}@media (max-width:640px){.contact__sec form button{width:16%;height:2.5em}}.contact__links{margin:0;padding:0}.contact__links li{margin:.1em auto .75em;display:block}@-moz-keyframes contactGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@-webkit-keyframes contactGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@-o-keyframes contactGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}@keyframes contactGradient{0%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}15%{-webkit-filter:hue-rotate(-5deg);filter:hue-rotate(-5deg);-webkit-filter:hue-rotate(-5deg)}35%{-webkit-filter:hue-rotate(35deg);filter:hue-rotate(35deg);-webkit-filter:hue-rotate(35deg)}50%{-webkit-filter:hue-rotate(45deg);filter:hue-rotate(45deg);-webkit-filter:hue-rotate(45deg)}100%{-webkit-filter:hue-rotate(0);filter:hue-rotate(0);-webkit-filter:hue-rotate(0)}}.lazy-hidden,[ng-cloak]{display:none}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zb3Atc3R5bC9saWIvc29wLXN0eWwvZm9udGVsbG8uc3R5bCIsImNvcmUvZm9udHMuc3R5bCIsImNvcmUvc2NhZmZvbGQuc3R5bCIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zb3Atc3R5bC9saWIvc29wLXN0eWwvZm9udC5zdHlsIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL3ZlbmRvci5zdHlsIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2JvcmRlci1yYWRpdXMuc3R5bCIsImNvbnRhY3QvaW5kZXguc3R5bCIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zb3Atc3R5bC9saWIvc29wLXN0eWwvc3Iuc3R5bCIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9ib3JkZXIuc3R5bCIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9vdmVyZmxvdy5zdHlsIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2ZsZXguc3R5bCIsImNvcmUvaGVhZGVyL2luZGV4LnN0eWwiLCJjb3JlL21peGlucy5zdHlsIiwiY29yZS9mb290ZXIvaW5kZXguc3R5bCIsImNvcmUvc2xpZGVyL2luZGV4LnN0eWwiLCJwb3N0L2luZGV4LnN0eWwiLCJwb3N0L2ZpbHRlci5zdHlsIiwicHJvamVjdC9hcmNoaXZlLnN0eWwiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bHVzL2xpYi9mdW5jdGlvbnMvaW5kZXguc3R5bCIsInByb2plY3Qvc2luZ2xlLnN0eWwiLCJuZXdzL2luZGV4LnN0eWwiLCJhYm91dC9pbmRleC5zdHlsIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NvcC1zdHlsL2xpYi9zb3Atc3R5bC9yZXNwb25zaXZlLnN0eWwiLCJpbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJB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cU1kLGVBQWUsa0JBRWpCLElGL0xnQixlQUFHLGtCQVJOLE9BQUcsa0JFeU1kLGVBQWUsa0JBRWpCLEtGbk1nQixlQUFHLGNBUk4sT0FBRyxjRTZNZCxlQUFlLGVpQnBPbkIsYUFDQSxXYlNJLFFBQVMiLCJmaWxlIjoiaW5kZXguY3NzIiwic291cmNlc0NvbnRlbnQiOlsic2V0dXAtZm9udC1mYWNlKGZvbnRGYW1pbHksIHBhdGggPSAnL2ZvbnRzLycsIGZvbnRGaWxlID0gZm9udEZhbWlseSlcbiAgQGZvbnQtZmFjZVxuICAgIGZvbnQtZmFtaWx5IGZvbnRGYW1pbHlcbiAgICBzcmM6IHVybChwYXRoICsgZm9udEZpbGUgKyAnLmVvdCcpO1xuICAgIHNyYzogdXJsKHBhdGggKyBmb250RmlsZSArICcuZW90I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgdXJsKHBhdGggKyBmb250RmlsZSArICcud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKHBhdGggKyBmb250RmlsZSArICcudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgdXJsKHBhdGggKyBmb250RmlsZSArICcuc3ZnIycgKyBmb250RmlsZSkgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodCBub3JtYWxcbiAgICBmb250LXN0eWxlIG5vcm1hbFxuXG4kZm9udGVsbG8taWNvblxuICBmb250LWZhbWlseSBcImZvbnRlbGxvXCJcbiAgZm9udC1zdHlsZSBub3JtYWxcbiAgZm9udC13ZWlnaHQgbm9ybWFsXG4gIHNwZWFrIG5vbmVcblxuICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICB0ZXh0LWRlY29yYXRpb24gaW5oZXJpdFxuICB3aWR0aCBhdXRvXG4gIG1hcmdpbi1yaWdodCAuMmVtXG4gIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgLyoqXG4gICAqIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2Rlc1xuICAgKi9cbiAgZm9udC12YXJpYW50IG5vcm1hbFxuICB0ZXh0LXRyYW5zZm9ybSBub25lXG5cbiAgLyoqXG4gICAqIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwXG4gICAqL1xuICBsaW5lLWhlaWdodCAxZW1cblxuICAvKipcbiAgICogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCU1xuICAgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZyBhbnRpYWxpYXNlZFxuICAtbW96LW9zeC1mb250LXNtb290aGluZyBncmF5c2NhbGVcblxuJGZvbnRlbGxvLWljb24tYW5pbWF0ZVxuICAvKlxuICAgKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpY1xuICAgKi9cbiAgbWFyZ2luLWxlZnQgLjJlbVxuXG5mb250ZWxsby1pY29uKHNob3VsZEFuaW1hdGUgPSBmYWxzZSlcbiAgQGV4dGVuZCAkZm9udGVsbG8taWNvblxuXG4gIGlmIHNob3VsZEFuaW1hdGVcbiAgICBAZXh0ZW5kICRmb250ZWxsby1pY29uLWFuaW1hdGVcbiIsInNldHVwLWZvbnQtZmFjZSgnbmYtZm9udGVsbG8nLCAnLi4vc3JjL2NvcmUvZm9udC8nKVxuXG5AZm9udC1mYWNlXG4gIGZvbnQtZmFtaWx5ICdDYWxpYnJlV2ViJ1xuICBmb250LXdlaWdodCBub3JtYWxcbiAgZm9udC1zdHlsZSBub3JtYWxcbiAgc3JjIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItTWVkaXVtLmVvdClcbiAgc3JjIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItTWVkaXVtLmVvdCkgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCBcbiAgICAgIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItTWVkaXVtLndvZmYpIGZvcm1hdCgnd29mZicpLCBcbiAgICAgIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItTWVkaXVtLndvZmYyKSBmb3JtYXQoJ3dvZmYyJylcblxuQGZvbnQtZmFjZVxuICBmb250LWZhbWlseSAnQ2FsaWJyZVdlYidcbiAgZm9udC13ZWlnaHQgbm9ybWFsXG4gIGZvbnQtc3R5bGUgaXRhbGljXG4gIHNyYyB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLU1lZGl1bUl0YWxpYy5lb3QpXG4gIHNyYyB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLU1lZGl1bUl0YWxpYy5lb3QpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgXG4gICAgICB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLU1lZGl1bUl0YWxpYy53b2ZmKSBmb3JtYXQoJ3dvZmYnKSwgXG4gICAgICB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLU1lZGl1bUl0YWxpYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpXG5cbkBmb250LWZhY2VcbiAgZm9udC1mYW1pbHkgJ0NhbGlicmVXZWInXG4gIGZvbnQtd2VpZ2h0IGJvbGRcbiAgZm9udC1zdHlsZSBub3JtYWxcbiAgc3JjIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItQm9sZC5lb3QpXG4gIHNyYyB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLUJvbGQuZW90KSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIFxuICAgICAgdXJsKC4uL3NyYy9jb3JlL2ZvbnQvQ2FsaWJyZVdlYi1Cb2xkLndvZmYpIGZvcm1hdCgnd29mZicpLCBcbiAgICAgIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItQm9sZC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpXG5cbkBmb250LWZhY2VcbiAgZm9udC1mYW1pbHkgJ0NhbGlicmVXZWInXG4gIGZvbnQtd2VpZ2h0IGJvbGRcbiAgZm9udC1zdHlsZSBpdGFsaWNcbiAgc3JjIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItQm9sZEl0YWxpYy5lb3QpXG4gIHNyYyB1cmwoLi4vc3JjL2NvcmUvZm9udC9DYWxpYnJlV2ViLUJvbGRJdGFsaWMuZW90KSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIFxuICAgICAgdXJsKC4uL3NyYy9jb3JlL2ZvbnQvQ2FsaWJyZVdlYi1Cb2xkSXRhbGljLndvZmYpIGZvcm1hdCgnd29mZicpLCBcbiAgICAgIHVybCguLi9zcmMvY29yZS9mb250L0NhbGlicmVXZWItQm9sZEl0YWxpYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpXG4iLCJodG1sXG5ib2R5XG4gIG1hcmdpbiAwXG4gIHBhZGRpbmcgMFxuXG5ib2R5XG4gIG1pbi13aWR0aCAzMjBweFxuXG4gIGZvbnQtc2l6ZSAoJGJhc2UtZm9udC1zaXplKXB4XG4gIGZvbnQtZmFtaWx5ICRjYWxpYnJlXG5cbiAgdGV4dC1hbGlnbiBjZW50ZXJcblxuICBmb250LXNtb290aGluZyBhbnRpYWxpYXNlZFxuXG4gIGNvbG9yICRibGFja1xuXG4gIG92ZXJmbG93LXggaGlkZGVuXG5cbmZvciBpIGluIDEuLjZcbiAgaHtpfVxuICAgIGZvbnQtd2VpZ2h0IG5vcm1hbFxuXG5hcnRpY2xlXG4gIHBvc2l0aW9uIHJlbGF0aXZlXG5cbmFkZHJlc3NcbiAgZm9udC1zdHlsZSBub3JtYWxcblxuYVxuaW5wdXRcbmJ1dHRvblxuICB0cmFuc2l0aW9uIDAuMnNcblxuICBjdXJzb3IgcG9pbnRlclxuXG4gIGJvcmRlci1yYWRpdXMgMFxuXG5wXG4uYm9keS1jb3B5XG4gIGZvbnQtc3BlY3MoMjEsIDM0LCA1MClcblxuICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgIGZvbnQtc3BlY3MoMTgpXG5cbiAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICBmb250LXNwZWNzKDE2KVxuXG4gIHBcbiAgICBmb250LXNpemUgMWVtXG5cbi5ib2R5LWNvcHlcbiAgbWFyZ2luIDFlbSBhdXRvXG4gIG1heC13aWR0aCAoNzc1IC8gMjEpZW1cblxuLnNyXG4gIHNvcC1zci1vbmx5KClcblxuLm1haW5cbiAgcG9zaXRpb24gcmVsYXRpdmVcbiAgei1pbmRleCAxMFxuXG4uY29udGFpbmVyXG4gIG1hcmdpbiAwIGF1dG9cbiAgcGFkZGluZyAwIDc1cHhcblxuICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgIHBhZGRpbmcgMCA1MHB4XG5cbiAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICBwYWRkaW5nIDAgMzVweFxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgcGFkZGluZyAwIDEwcHhcblxuLmZ1bGwtbGlua1xuICBwb3NpdGlvbiBhYnNvbHV0ZVxuICB6LWluZGV4ICAyXG5cbiAgbGVmdCAwXG4gIHRvcCAgMFxuXG4gIHdpZHRoICAxMDAlXG4gIGhlaWdodCAxMDAlXG5cbi5jdGEtZnJvbnRcbi5mdWxsLWxpbmsgYVxuICBwb3NpdGlvbiByZWxhdGl2ZVxuICB6LWluZGV4IDVcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eShoaWRkZW4pXG5cbi5jdGEtLWJveFxuICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICBtYXJnaW4gMC41ZW0gYXV0b1xuICBwYWRkaW5nIDAuOGVtIDEuNWVtXG5cbiAgY29sb3IgJHdoaXRlXG4gIGJvcmRlciAzcHggc29saWQgJHdoaXRlXG5cbiAgZm9udC1zcGVjcygxOCwgYXV0bywgMTAwKVxuICB0ZXh0LWRlY29yYXRpb24gbm9uZVxuICB0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcbiAgZm9udC13ZWlnaHQgYm9sZFxuXG4gICY6aG92ZXJcbiAgICBiYWNrZ3JvdW5kICR3aGl0ZVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgZm9udC1zcGVjcygxNSlcblxuLmNvbnRlbnRcbiAgbWFyZ2luLXRvcCAxMzBweFxuICBtaW4taGVpZ2h0IDcwdmhcblxuICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgIG1hcmdpbi10b3AgOTZweFxuXG4uYWxpZ25jZW50ZXJcbiAgZGlzcGxheSBibG9ja1xuXG4gIG1hcmdpbiAwIGF1dG9cblxuLmdvdGhpY1xuICBmb250LXNwZWNzKCRiYXNlLWZvbnQtc2l6ZSwgYXV0bywgMTI0KVxuICBmb250LWZhbWlseSAkZ290aGljXG4gIHRleHQtdHJhbnNmb3JtIHVwcGVyY2FzZVxuXG4ucGFnZS1oZWFkZXJcbi5wYWdlLXN1YmhlYWRlclxuICBwb3NpdGlvbiByZWxhdGl2ZVxuXG4gIEBleHRlbmQgLmdvdGhpY1xuXG4gIHotaW5kZXggMTBcblxuLnBhZ2Utc3ViaGVhZGVyXG4gIGZvbnQtc3BlY3MoNzUpXG5cbiAgQG1lZGlhIChtYXgtd2lkdGggJGRlc2t0b3ApXG4gICAgZm9udC1zcGVjcyg2MClcblxuICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgIGZvbnQtc3BlY3MoNDgpXG5cbiAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICBmb250LXNwZWNzKDMyKVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgZm9udC1zcGVjcygyNilcblxuICAmLS1ibGFja1xuICAgIGNvbG9yICRibGFjayAhaW1wb3J0YW50XG5cbiAgJi0td2hpdGVcbiAgICBjb2xvciAkd2hpdGUgIWltcG9ydGFudFxuXG4ucGFnZS1oZWFkZXJcbiAgZm9udC1zcGVjcygxMDUpXG4gIGNvbG9yIGxpZ2h0ZW4oJGJsYWNrLCA3JSlcblxuICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgIGZvbnQtc3BlY3MoNzIpXG5cbiAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICBmb250LXNwZWNzKDQ4KVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgZm9udC1zcGVjcygzMClcblxuICAmLS1tYXhcbiAgICBmb250LXNwZWNzKDE0NClcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRkZXNrdG9wKVxuICAgICAgZm9udC1zcGVjcygxMTUpXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgZm9udC1zcGVjcyg4NClcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICBmb250LXNwZWNzKDUyKVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIGZvbnQtc3BlY3MoMzIpXG5cbiAgJi0tbG9uZ1xuICAgIG1hcmdpbiAwIGF1dG9cblxuICAgIG1heC13aWR0aCAoMTIwMCAvIDQ1KWVtXG5cbiAgICBmb250LXNwZWNzKDQ1LCA3NiwgNTApXG4gICAgZm9udC1mYW1pbHkgJGNhbGlicmVcbiAgICB0ZXh0LXRyYW5zZm9ybSBub25lXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgZm9udC1zcGVjcygyMiwgMzMsIDUwKVxuIiwiJGJhc2UtZm9udC1zaXplID89IDE0XG5cbmZvbnQtc21vb3RoaW5nKHZhbHVlID0gYW50aWFsaWFzZWQpXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmcgdmFsdWVcblxuZm9udC1zcGVjcyhzaXplLCBsZWFkaW5nID0gbnVsbCwgdHJhY2tpbmcgPSBudWxsLCBzbW9vdGhlZCA9IGZhbHNlLCBpbXBvcnRhbnQgPSBudWxsKVxuICBmb250LXNpemUgKHNpemUgLyAkYmFzZS1mb250LXNpemUpZW0gaW1wb3J0YW50XG4gIGlmIHNpemUgPT0gMCAmJiBsZWFkaW5nID09IDBcbiAgICBsaW5lLWhlaWdodCAwIGltcG9ydGFudFxuICB1bmxlc3MgbGVhZGluZyA9PSBudWxsXG4gICAgaWYgbGVhZGluZyA9PSBhdXRvIHx8IGxlYWRpbmcgPT0gMS4yZW0gfHwgbGVhZGluZyA9PSAxMjAlXG4gICAgICBsaW5lLWhlaWdodCAxLjJlbSBpbXBvcnRhbnRcbiAgICBlbHNlXG4gICAgICBsaW5lLWhlaWdodCAobGVhZGluZyAvIHNpemUpZW0gaW1wb3J0YW50XG4gIGlmIHRyYWNraW5nICE9IG51bGxcbiAgICBpZiB0cmFja2luZyA9PSAwXG4gICAgICBsZXR0ZXItc3BhY2luZyAwIGltcG9ydGFudFxuICAgIGVsc2VcbiAgICAgIGlmIHVuaXQodHJhY2tpbmcpID09ICdweCdcbiAgICAgICAgbGV0dGVyLXNwYWNpbmcgKHRyYWNraW5nIC8gc2l6ZSllbSBpbXBvcnRhbnRcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0dGVyLXNwYWNpbmcgKHRyYWNraW5nIC8gMTAwMCllbSBpbXBvcnRhbnRcbiAgaWYgc21vb3RoZWQgPT0gJ3Ntb290aCcgfHwgc21vb3RoZWQgPT0gdHJ1ZVxuICAgIGZvbnQtc21vb3RoaW5nIGFudGlhbGlhc2VkXG4iLCJ1c2UoJy4uL25vZGVzL3ZlbmRvci1oZWxwZXJzLmpzJylcbkBpbXBvcnQgJ2NvbmZpZydcblxuLypcbiAqIEFsaWFzIFwibm93cmFwXCIgYXMgXCJuby13cmFwXCIuXG4gKi9cblxubm8td3JhcCA9IHVucXVvdGUoJ25vd3JhcCcpXG5cbi8qXG4gKiBIZWxwZXIgdG8gZmluZCBvdXQgaWYgYSBnaXZlbiB2YWx1ZSBpcyBhIHdpZHRoXG4gKi9cblxuaXMtd2lkdGgodmFsKVxuICBpZiBhdXRvID09IHZhbFxuICAgIHJldHVybiB0cnVlXG4gIGVsc2UgaWYgdmFsICYmICd1bml0JyA9PSB0eXBlKHZhbClcbiAgICAvLyBTdHlsdXMgZG9lcyBub3Qgc2hvcnQgY2lyY3VpdCBzbyB3ZSBuZWVkIHRvIHBlcmZvcm0gdGhpcyBhcyBhIGRpc3RpbmN0XG4gICAgLy8gb3BlcmF0aW9uIHRvIHByZXZlbnQgZXJyb3JzXG4gICAgcmV0dXJuICcnICE9IHVuaXQodmFsKVxuICByZXR1cm4gZmFsc2VcblxuLypcbiAqIFZlbmRvciBzdXBwb3J0IGZvciB0aGUgZ2l2ZW4gcHJvcCAvIGFyZ3VtZW50cywgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZVxuICogb25seSBwcmVmaXhlcyB0byB1dGlsaXplLCBvciB0aG9zZSB3aGljaCBzaG91bGQgYmUgaWdub3JlZC5cbiAqL1xuXG52ZW5kb3IocHJvcCwgYXJncywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwsIHZlbmRvci1wcm9wZXJ0eSA9IHRydWUpXG4gIG5lZWRfbm9ybWFsaXplID0gIXZlbmRvci1wcm9wZXJ0eSBvciBwcm9wIGluICgndHJhbnNpdGlvbicgJ3RyYW5zaXRpb24tcHJvcGVydHknICdib3JkZXItaW1hZ2UnICdib3JkZXItaW1hZ2Utc2xpY2UnKVxuICBmb3IgcHJlZml4IGluIHZlbmRvci1wcmVmaXhlc1xuICAgIHVubGVzcyAob25seSBhbmQgIShwcmVmaXggaW4gb25seSkpIG9yIChpZ25vcmUgYW5kIHByZWZpeCBpbiBpZ25vcmUpXG4gICAgICBpZiBvZmZpY2lhbCA9PSBwcmVmaXhcbiAgICAgICAgaWYgbmVlZF9ub3JtYWxpemVcbiAgICAgICAgICB7cHJvcH06IG5vcm1hbGl6ZShwcm9wLCgnJXMnICUgYXJncykpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICB7cHJvcH06IGFyZ3NcbiAgICAgIGVsc2VcbiAgICAgICAgbmV3cHJvcCA9IHByb3BcbiAgICAgICAgbmV3cHJvcCA9ICctJyArIHByZWZpeCArICctJyArIHByb3AgaWYgdmVuZG9yLXByb3BlcnR5XG5cbiAgICAgICAgaWYgbmVlZF9ub3JtYWxpemVcbiAgICAgICAgICB7bmV3cHJvcH06IG5vcm1hbGl6ZShwcm9wLCgnJXMnICUgYXJncykscHJlZml4KVxuICAgICAgICBlbHNlXG4gICAgICAgICAge25ld3Byb3B9OiBhcmdzXG4vKlxuICogVmVuZG9yaXplIHRoZSBnaXZlbiB2YWx1ZS5cbiAqL1xuXG52ZW5kb3ItdmFsdWUoYXJnLCBvbmx5ID0gbnVsbCwgaWdub3JlID0gbnVsbClcbiAgcHJvcCA9IGN1cnJlbnQtcHJvcGVydHlbMF1cbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKSBvciBvZmZpY2lhbCA9PSBwcmVmaXhcbiAgICAgIGFkZC1wcm9wZXJ0eShwcm9wLCAnLSVzLSVzJyAlIChwcmVmaXggYXJnKSlcbiAgYXJnXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtc2hhZG93XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtc2hhZG93KClcbiAgdmVuZG9yKCdib3gtc2hhZG93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ1c2VyLXNlbGVjdFwiIHN1cHBvcnQuXG4gKi9cblxudXNlci1zZWxlY3QoKVxuICB2ZW5kb3IoJ3VzZXItc2VsZWN0JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tY291bnQoKVxuICB2ZW5kb3IoJ2NvbHVtbi1jb3VudCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1nYXBcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1nYXAoKVxuICB2ZW5kb3IoJ2NvbHVtbi1nYXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZVwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtY29sb3JcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLWNvbG9yKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1jb2xvcicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLXdpZHRoXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS13aWR0aCgpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtd2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtc3R5bGUoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXN0eWxlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXdpZHRoXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4td2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi13aWR0aCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1zcGFuXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tc3BhbigpXG4gIHZlbmRvcignY29sdW1uLXNwYW4nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1maWxsXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZmlsbCgpXG4gIHZlbmRvcignY29sdW1uLWZpbGwnLCBhcmd1bWVudHMsIG9ubHk6IG1veilcblxuLypcbiAqIExlZ2FjeSBzeW50YXggc3VwcG9ydCBmb3IgYmFja2dyb3VuZC1jbGlwIGFuZCBiYWNrZ3JvdW5kLW9yaWdpblxuICovXG5cbmxlZ2FjeS1iZy12YWx1ZXMocHJvcGVydHksIGFyZ3MpXG4gIGxlZ2FjeV9hcmdzID0gKClcbiAgaW1wb3J0YW5jZSA9IHVucXVvdGUoJycpXG4gIGZvciBzdWJhcmdzIGluIGFyZ3NcbiAgICBmb3IgYXJnIGluIHN1YmFyZ3NcbiAgICAgIGlmIGFyZyBpbiAoYm9yZGVyLWJveCBwYWRkaW5nLWJveCBjb250ZW50LWJveClcbiAgICAgICAgYXJnID0gdW5xdW90ZSgnYm9yZGVyJykgIGlmIGFyZyA9PSBib3JkZXItYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ3BhZGRpbmcnKSBpZiBhcmcgPT0gcGFkZGluZy1ib3hcbiAgICAgICAgYXJnID0gdW5xdW90ZSgnY29udGVudCcpIGlmIGFyZyA9PSBjb250ZW50LWJveFxuICAgICAgaWYgYXJnICE9ICchaW1wb3J0YW50J1xuICAgICAgICBwdXNoKGxlZ2FjeV9hcmdzLGFyZylcbiAgICAgIGVsc2VcbiAgICAgICAgaW1wb3J0YW5jZSA9ICFpbXBvcnRhbnRcbiAgdmVuZG9yKHByb3BlcnR5LCB1bnF1b3RlKGpvaW4oJywgJyxsZWdhY3lfYXJncykpIGltcG9ydGFuY2UsIG9ubHk6IG1veiB3ZWJraXQpXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZ3JvdW5kLWNsaXBcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtY2xpcCgpXG4gIGlmIGFyZ3VtZW50c1swXSA9PSB0ZXh0XG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdClcbiAgZWxzZVxuICAgIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtY2xpcCcsIGFyZ3VtZW50cylcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1vcmlnaW5cIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtb3JpZ2luKClcbiAgbGVnYWN5LWJnLXZhbHVlcygnYmFja2dyb3VuZC1vcmlnaW4nLCBhcmd1bWVudHMpXG4gIGJhY2tncm91bmQtb3JpZ2luOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxuYmFja2dyb3VuZC1zaXplKClcbiAgdmVuZG9yKCdiYWNrZ3JvdW5kLXNpemUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm1cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybSgpXG4gIHZlbmRvcigndHJhbnNmb3JtJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cbnRyYW5zZm9ybS1vcmlnaW4oKVxuICAgIHZlbmRvcigndHJhbnNmb3JtLW9yaWdpbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNmb3JtLXN0eWxlKClcbiAgdmVuZG9yKCd0cmFuc2Zvcm0tc3R5bGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3JkZXItaW1hZ2VcIiBzdXBwb3J0LlxuICovXG5cbmJvcmRlci1pbWFnZSgpXG4gIHZlbmRvcignYm9yZGVyLWltYWdlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1wcm9wZXJ0eSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1wcm9wZXJ0eScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZHVyYXRpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1kZWxheSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tmYWNlLXZpc2liaWxpdHkoKVxuICB2ZW5kb3IoJ2JhY2tmYWNlLXZpc2liaWxpdHknLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJwZXJzcGVjdGl2ZVwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUoKVxuICBpZiBtaXhpblxuICAgIHZlbmRvcigncGVyc3BlY3RpdmUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG4gIGVsc2VcbiAgICAncGVyc3BlY3RpdmUoJXMpJyAlIGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmUtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5wZXJzcGVjdGl2ZS1vcmlnaW4oKVxuICB2ZW5kb3IoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIE9wYWNpdHkgd2l0aCBjb25kaXRpb25hbCBJRSBzdXBwb3J0LlxuICovXG5cbm9wYWNpdHkobiwgYXJncy4uLilcbiAgb3BhY2l0eTogbiBhcmdzXG4gIGlmIHN1cHBvcnQtZm9yLWllXG4gICAgaWYgbiA9PSBpbmhlcml0IG9yIG4gPT0gaW5pdGlhbFxuICAgICAgLW1zLWZpbHRlcjogbiBhcmdzXG4gICAgICBmaWx0ZXI6IG4gYXJnc1xuICAgIGVsc2VcbiAgICAgIHZhbCA9IHJvdW5kKG4gKiAxMDApXG4gICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgIC1tcy1maWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgICBmaWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgZWxzZVxuICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWwgYXJnc1xuICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWwgYXJnc1xuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiXG4gKi9cblxudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cylcblxuLypcbiAqIEFsaWFzIHRoZSBcIndoaXRlLXNwYWNlXCIgcHJvcGVydHkuXG4gKi9cblxud2hpdGVzcGFjZSgpXG4gIHdoaXRlLXNwYWNlOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJveC1zaXppbmdcIiBzdXBwb3J0LlxuICovXG5cbmJveC1zaXppbmcoKVxuICB2ZW5kb3IoJ2JveC1zaXppbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JpZW50XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JpZW50KClcbiAgdmVuZG9yKCdib3gtb3JpZW50JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWZsZXgtZ3JvdXBcIiBzdXBwb3J0LlxuICovXG5cbmJveC1mbGV4LWdyb3VwKClcbiAgdmVuZG9yKCdib3gtZmxleC1ncm91cCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1vcmRpbmFsLWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JkaW5hbC1ncm91cCgpXG4gIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cblxuLypcbiAqIFZlbmRvciBcImJveC1hbGlnblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWFsaWduKClcbiAgdmVuZG9yKCdib3gtYWxpZ24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtcGFja1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXBhY2soKVxuICB2ZW5kb3IoJ2JveC1wYWNrJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWRpcmVjdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWRpcmVjdGlvbigpXG4gIHZlbmRvcignYm94LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24nLCBhcmd1bWVudHMpXG5cblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1uYW1lXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tbmFtZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLW5hbWUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kdXJhdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWRlbGF5XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgdmVuZG9yKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLXBsYXktc3RhdGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZmlsbC1tb2RlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZmlsbC1tb2RlKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZmlsbC1tb2RlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiaHlwaGVuc1wiIHN1cHBvcnQuXG4gKi9cblxuaHlwaGVucygpXG4gIHZlbmRvcignaHlwaGVucycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFwcGVhcmFuY2VcIiBzdXBwb3J0LlxuICovXG5cbmFwcGVhcmFuY2UoKVxuICB2ZW5kb3IoJ2FwcGVhcmFuY2UnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0YWItc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxudGFiLXNpemUoKVxuICB2ZW5kb3IoJ3RhYi1zaXplJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogbyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcIm92ZXJmbG93LXNjcm9sbGluZ1wiIHN1cHBvcnQuXG4gKi9cblxub3ZlcmZsb3ctc2Nyb2xsaW5nKClcbiAgdmVuZG9yKCdvdmVyZmxvdy1zY3JvbGxpbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcInRleHQtb3ZlcmZsb3dcIiBzdXBwb3J0LCAsIC1vLSBmb3Igb3BlcmEgOS4qIC0gMTAuKlxuICovXG5cbnRleHQtb3ZlcmZsb3coKVxuICB2ZW5kb3IoJ3RleHQtb3ZlcmZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIG8pXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LXNpemUtYWRqdXN0XCIgc3VwcG9ydC5cbiAqL1xudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cywgb25seTogb2ZmaWNpYWwgd2Via2l0IG1zKVxuXG4vKlxuICogVmVuZG9yIFwiZm9udC1zbW9vdGhpbmdcIiBzdXBwb3J0LCB3ZWJraXQgb25seS5cbiAqL1xuZm9udC1zbW9vdGhpbmcoKVxuICB2ZW5kb3IoJ2ZvbnQtc21vb3RoaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG5cblxuLyoqXG4gKiBWZW5kb3IgaW5wdXQtcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIgc3VwcG9ydC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAgIC8vIERlZmF1bHQgc3ludGF4XG4gKiAgICBib2R5XG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yICMzMzMsIGZvbnQtd2VpZ2h0IG5vcm1hbClcbiAqXG4gKiAgICAvLyBUaGUgY29tbWEgaXMgaW1wb3J0YW50XG4gKiAgICAucGxhY2Vob2xkZXItcmVkXG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yIHJlZCwpXG4gKlxuICogICAgLy8gV2UgY2FuIHBhc3MgYSBmdW5jdGlvblxuICogICAgZ3JlZW4tcGxhY2Vob2xkZXIoKVxuICogICAgICBjb2xvciBncmVlblxuICogICAgLnBsYWNlaG9sZGVyLWdyZWVuXG4gKiAgICAgIHBsYWNlaG9sZGVyKGdyZWVuLXBsYWNlaG9sZGVyKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgaGFzaFxuICogICAgdGV4dGFyZWFcbiAqICAgICAgcGxhY2Vob2xkZXIoKGZvbnQtc3R5bGUgaXRhbGljKSAoZm9udC13ZWlnaHQgYm9sZCkgKHBhZGRpbmcgJzRweCAxMHB4JykpXG4gKi9cbnBsYWNlaG9sZGVyKClcbiAgZm9yIHYgaW4gJzotd2Via2l0LWlucHV0JyAnLW1veicgJzotbW96JyAnLW1zLWlucHV0J1xuICAgICY6e3Z9LXBsYWNlaG9sZGVyXG4gICAgICBmb3IgcGFpciBpbiBhcmd1bWVudHNcbiAgICAgICAgaWYgdHlwZW9mKHBhaXIpID09ICdmdW5jdGlvbidcbiAgICAgICAgICBwYWlyKClcbiAgICAgICAgZWxzZSBpZiBwYWlyIGlzIG5vdCBudWxsICYmIHBhaXJbMF0gaXMgbm90IG51bGxcbiAgICAgICAgICB7cGFpclswXX06IHR5cGUocGFpclsxXSkgPT0gJ3N0cmluZycgPyBzKHBhaXJbMV0pIDogcGFpclsxXVxuaW5wdXQtcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclxuXG4vKlxuICogVmVuZG9yIGJhY2tncm91bmQgc3VwcG9ydCAoZ3JhZGllbnRzKS5cbiAqL1xuXG5iYWNrZ3JvdW5kKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kIGFyZ3VtZW50c1xuXG5iYWNrZ3JvdW5kLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kLWltYWdlIGFyZ3VtZW50c1xuXG5jdXJzb3IoKVxuICBpZiBtYXRjaCgnLWdyYWRpZW50XFwoJywgJycrYXJndW1lbnRzKVxuICAgIHZlbmRvcignY3Vyc29yJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgY3Vyc29yIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlLWltYWdlIGFyZ3VtZW50c1xuIiwiLypcbiAqIEhlbHBlciBmb3IgYm9yZGVyLXJhZGl1cygpLlxuICovXG5cbi1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgaWYgbGVuZ3RoKHBvcykgPT0gM1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxsZWZ0IHwgcmlnaHQ+IDxuPlxuICAgIHkgPSBwb3NbMF1cbiAgICB4ID0gcG9zWzFdXG4gICAgLy8gV2UgZG9uJ3QgdXNlIHZlbmRvciBmb3IgYm9kZXItcmFkaXVzIGFueW1vcmVcbiAgICAvLyB2ZW5kb3IoJ2JvcmRlci1yYWRpdXMtJXMlcycgJSBwb3MsIHBvc1syXSwgb25seTogd2Via2l0IG9mZmljaWFsKVxuICAgIHsnYm9yZGVyLSVzLSVzLXJhZGl1cycgJSBwb3N9OiBwb3NbMl0gaW1wb3J0YW5jZVxuICBlbHNlIGlmIHBvc1swXSBpbiAodG9wIGJvdHRvbSlcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8dG9wIHwgYm90dG9tPiA8bj5cbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gbGVmdCBwb3NbMV0sIGltcG9ydGFuY2UpXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zWzBdIHJpZ2h0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgZWxzZSBpZiBwb3NbMF0gaW4gKGxlZnQgcmlnaHQpXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPGxlZnQgfCByaWdodD4gPG4+XG4gICAgdW5zaGlmdChwb3MsIHRvcCk7XG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICAgIHBvc1swXSA9IGJvdHRvbVxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcblxuLypcbiAqIGJvcmRlci1yYWRpdXMgc3VwcG9ydGluZyBhdWdtZW50ZWQgYmVoYXZpb3IuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgYm9yZGVyLXJhZGl1czogMnB4IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIDVweCBib3R0b20gMTBweFxuICogICAgYm9yZGVyLXJhZGl1czogbGVmdCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgMTBweCBib3R0b20gcmlnaHQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4LCBib3R0b20gcmlnaHQgNXB4XG4gKlxuICovXG5cbmJvcmRlci1yYWRpdXMoKVxuICBwb3MgPSAoKVxuICBhdWdtZW50ZWQgPSBmYWxzZVxuICBpbXBvcnRhbmNlID0gYXJndW1lbnRzW2xlbmd0aChhcmd1bWVudHMpIC0gMV0gPT0gIWltcG9ydGFudCA/ICFpbXBvcnRhbnQgOiB1bnF1b3RlKCcnKVxuXG4gIGZvciBhcmdzIGluIGFyZ3VtZW50c1xuICAgIGZvciBhcmcgaW4gYXJnc1xuICAgICAgaWYgYXJnIGlzIGEgJ2lkZW50J1xuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGF1Z21lbnRlZCA9IHRydWVcbiAgICAgIGVsc2VcbiAgICAgICAgYXBwZW5kKHBvcywgYXJnKVxuICAgICAgICBpZiBhdWdtZW50ZWRcbiAgICAgICAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgICAgICAgcG9zID0gKClcbiAgYm9yZGVyLXJhZGl1cyBwb3MgdW5sZXNzIGF1Z21lbnRlZFxuIiwiJGNvbnRhY3QtYm9keS1jb3B5XG4gIGZvbnQtc3BlY3MoMzYsIDUyLCA1MClcbiAgXG4gIEBtZWRpYSAobWF4LXdpZHRoICRsYXB0b3ApXG4gICAgZm9udC1zcGVjcygzMilcbiAgXG4gIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgZm9udC1zcGVjcygyOClcbiAgXG4gIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgZm9udC1zcGVjcygyMClcblxuK3ByZWZpeC1jbGFzc2VzKGNvbnRhY3QpXG4gIC5fX2JnXG4gICAgcG9zaXRpb24gZml4ZWRcbiAgICBcbiAgICB0b3AgMFxuICAgIGxlZnQgMFxuICAgIFxuICAgIHdpZHRoIDEwMCVcbiAgICBoZWlnaHQgMTAwJVxuICAgIFxuICAgIHotaW5kZXggMFxuICAgIFxuICAgIGFuaW1hdGlvbiBjb250YWN0R3JhZGllbnQgNXMgZWFzZSBpbmZpbml0ZVxuICBcbiAgLl9fY29udGVudFxuICAgIGRpc3BsYXkgZmxleFxuICAgIGZsZXgtd3JhcCB3cmFwXG4gICAgXG4gICAganVzdGlmeS1jb250ZW50IGNlbnRlclxuICAgIGFsaWduLWNvbnRlbnQgY2VudGVyXG4gICAgYWxpZ24taXRlbXMgZmxleC1zdGFydFxuICAgIFxuICAgIGxldHRlci1zcGFjaW5nIDAuMDVlbVxuICAgIFxuICAgIG1pbi1oZWlnaHQgY2FsYygxMDB2aCAtIDEzMHB4KVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICBtaW4taGVpZ2h0IGNhbGMoMTAwdmggLSA5NnB4KVxuICAgIFxuICAgIGFcbiAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcbiAgICAgIFxuICAgICAgZm9udC13ZWlnaHQgYm9sZFxuICAgICAgXG4gICAgICAmOmZvY3VzXG4gICAgICAgIG91dGxpbmUgMXB4ICR3aGl0ZSBkb3R0ZWRcbiAgICAgIFxuICAgICAgJjpob3ZlclxuICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uIHVuZGVybGluZVxuICAgIFxuICAgIGhlYWRlclxuICAgICAgZGlzcGxheSBibG9ja1xuICAgIFxuICAgICAgd2lkdGggMTAwJVxuICAgICAgXG4gIC5fX3RpdGxlXG4gICAgZGlzcGxheSBibG9ja1xuICAgIFxuICAgIHdpZHRoIDEwMCVcbiAgICBcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgcGFkZGluZy10b3AgMC41ZW1cbiAgICBcbiAgICBmb250LXNwZWNzKDE0MCwgMTQwKVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRsYXB0b3ApXG4gICAgICBmb250LXNwZWNzKDEwMClcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgZm9udC1zcGVjcyg2MClcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgZm9udC1zcGVjcyg0MClcbiAgICBcbiAgLl9fcGhcbiAgICBtYXJnaW4gMCBhdXRvIDAuMWVtXG4gICAgXG4gICAgZm9udC1mYW1pbHkgJGNhbGlicmVcbiAgICBmb250LXdlaWdodCBib2xkXG4gICAgXG4gICAgY29sb3IgJHdoaXRlXG4gICAgXG4gICAgbGV0dGVyLXNwYWNpbmcgMC4wMmVtXG4gICAgbGluZS1oZWlnaHQgMWVtXG4gIFxuICAuX19lbWFpbFxuICAgIG1hcmdpbiAwIGF1dG8gMmVtXG4gICAgXG4gICAgQGV4dGVuZCAkY29udGFjdC1ib2R5LWNvcHlcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgbWFyZ2luIDAgYXV0byAxLjVlbVxuICAgIFxuICAuX19zZWNcbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgIFxuICAgIG1hcmdpbiA1ZW0gYXV0b1xuICAgIHdpZHRoICgxMDAgLyAzKSVcbiAgICBcbiAgICB2ZXJ0aWNhbC1hbGlnbiB0b3BcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkZGVza3RvcFNtYWxsKVxuICAgICAgbWFyZ2luIDNlbSBhdXRvXG4gICAgICB3aWR0aCA1MCVcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgd2lkdGggMTAwJVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICBtYXJnaW4gMmVtIGF1dG9cbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgbWFyZ2luIDEuNWVtIGF1dG9cbiAgICBcbiAgICBoZWFkZXJcbiAgICAgIG1hcmdpbi1ib3R0b20gMC40ZW1cbiAgICBcbiAgICBhZGRyZXNzXG4gICAgICBAZXh0ZW5kICRjb250YWN0LWJvZHktY29weVxuICAgICAgbWFyZ2luLWJvdHRvbSAwLjNlbVxuXG4gICAgYVxuICAgIGFzaWRlXG4gICAgICB0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcbiAgICAgIGZvbnQtc3BlY3MoMjIsIGF1dG8sIDEwMClcbiAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcbiAgICAgIFxuICAgICAgY29sb3IgJHdoaXRlXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICAgIGZvbnQtc3BlY3MoMjApXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICAgIGZvbnQtc3BlY3MoMTgpXG4gICAgXG4gICAgZm9ybVxuICAgICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcbiAgICAgIFxuICAgICAgYm9yZGVyIDRweCBzb2xpZCAkYmxhY2tcbiAgICAgIFxuICAgICAgbWFyZ2luIDAgYXV0byAwLjZlbVxuICAgICAgXG4gICAgICBAZXh0ZW5kICRjb250YWN0LWJvZHktY29weVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgIG1heC13aWR0aCAxN2VtXG4gICAgICBcbiAgICAgIGlucHV0XG4gICAgICBidXR0b25cbiAgICAgICAgZm9udC1zaXplIDFlbVxuICAgICAgICBmb250LWZhbWlseSAkY2FsaWJyZVxuICAgICAgXG4gICAgICBpbnB1dFxuICAgICAgICBhcHBlYXJhbmNlIG5vbmVcbiAgICAgICAgXG4gICAgICAgIGJvcmRlciBub25lXG4gICAgICAgIG91dGxpbmUgbm9uZVxuICAgICAgICBcbiAgICAgICAgYmFja2dyb3VuZCBub25lXG4gICAgICAgIFxuICAgICAgICBwYWRkaW5nIDAuNGVtIDAgMC40ZW0gMC42ZW1cbiAgICAgICAgbWF4LXdpZHRoIDhlbVxuICAgICAgICBcbiAgICAgICAgJjpmb2N1c1xuICAgICAgICAgIGJhY2tncm91bmQgYWxwaGEoJHdoaXRlLCAyMCUpXG4gICAgICAgIFxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgICAgIG1heC13aWR0aCA3NiVcbiAgICAgICAgICB3aWR0aCA3NiVcbiAgICAgICAgICBcbiAgICAgICAgICBwYWRkaW5nIDAuNmVtIDAgMC42ZW0gOCVcbiAgICAgICAgXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJcbiAgICAgICAgICBjb2xvciAkYmxhY2tcbiAgICAgICAgXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXJcbiAgICAgICAgICBjb2xvciAkYmxhY2tcbiAgICAgICAgXG4gICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyXG4gICAgICAgICAgY29sb3IgJGJsYWNrXG4gICAgICAgIFxuICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXJcbiAgICAgICAgICBjb2xvciAkYmxhY2tcbiAgICAgIFxuICAgICAgYnV0dG9uXG4gICAgICAgIGJ1dHRvbi1yZXNldCgpXG4gICAgICAgIHBhZGRpbmcgMFxuICAgICAgICBtYXJnaW4gMFxuICAgICAgICBcbiAgICAgICAgd2lkdGggMS41ZW1cbiAgICAgICAgaGVpZ2h0IDJlbVxuICAgICAgICBcbiAgICAgICAgJjphZnRlclxuICAgICAgICAgIGZvbnQtZmFtaWx5ICduZi1mb250ZWxsbydcbiAgICAgICAgICBjb250ZW50ICdcXEU4MDInXG4gICAgICAgIFxuICAgICAgICAmOmZvY3VzXG4gICAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgICAgICAgXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICBiYWNrZ3JvdW5kICRibGFja1xuICAgICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgICB3aWR0aCAxNiVcbiAgICAgICAgICBoZWlnaHQgMi41ZW1cbiAgICAgICAgICBcbiAgXG4gIC5fX2xpbmtzXG4gICAgbWFyZ2luIDBcbiAgICBwYWRkaW5nIDBcbiAgICBcbiAgICBsaVxuICAgICAgbWFyZ2luIDAuMWVtIGF1dG8gMC43NWVtXG4gICAgICBkaXNwbGF5IGJsb2NrXG5cbkBrZXlmcmFtZXMgY29udGFjdEdyYWRpZW50XG4gIDAlXG4gICAgZmlsdGVyIGh1ZS1yb3RhdGUoMGRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKDBkZWcpXG4gICAgXG4gIDE1JSBcbiAgICBmaWx0ZXIgaHVlLXJvdGF0ZSgtNWRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKC01ZGVnKVxuICAgIFxuICAzNSUgXG4gICAgZmlsdGVyIGh1ZS1yb3RhdGUoMzVkZWcpXG4gICAgLXdlYmtpdC1maWx0ZXIgaHVlLXJvdGF0ZSgzNWRlZylcbiAgICBcbiAgNTAlIFxuICAgIGZpbHRlciBodWUtcm90YXRlKDQ1ZGVnKVxuICAgIC13ZWJraXQtZmlsdGVyIGh1ZS1yb3RhdGUoNDVkZWcpXG4gICAgXG4gIDEwMCUgXG4gICAgZmlsdGVyIGh1ZS1yb3RhdGUoMGRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKDBkZWcpXG4gICAgXG4iLCJzb3Atc3Itb25seSgpXG4gIHBvc2l0aW9uIGFic29sdXRlXG5cbiAgd2lkdGggICAxcHhcbiAgaGVpZ2h0ICAxcHhcbiAgYm9yZGVyICAwXG4gIHBhZGRpbmcgMFxuXG4gIG1hcmdpbiAtMXB4XG5cbiAgb3ZlcmZsb3cgaGlkZGVuXG4gIGNsaXAgICAgIHJlY3QoMCwgMCwgMCwgMClcblxuJHNvcC1zci1vbmx5XG4gIHNvcC1zci1vbmx5KClcblxuc29wLXNyLW9ubHktZm9jdXNhYmxlKClcbiAgJjpiZWZvcmVcbiAgJjphZnRlclxuICAgIHBvc2l0aW9uIHN0YXRpY1xuXG4gICAgd2lkdGggIGF1dG9cbiAgICBoZWlnaHQgYXV0b1xuXG4gICAgbWFyZ2luIDBcblxuICAgIG92ZXJmbG93IHZpc2libGVcbiAgICBjbGlwICAgICBhdXRvXG5cbiRzb3Atc3Itb25seS1mb2N1c2FibGVcbiAgc29wLXNyLW9ubHktZm9jdXNhYmxlKClcbiIsIi8qXG4gKiBib3JkZXI6IDxjb2xvcj5cbiAqIGJvcmRlcjogLi4uXG4gKi9cblxuYm9yZGVyKGNvbG9yLCBhcmdzLi4uKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvciBhcmdzXG4gIGVsc2VcbiAgICBib3JkZXI6IGFyZ3VtZW50c1xuIiwiLypcbiAqIE92ZXJmbG93IHV0aWxpdHkuIE1hcHMgdG8gcmVndWxhciBvdmVyZmxvdywgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdmFsdWUuXG4gKlxuICogU3lub3BzaXM6XG4gKlxuICogICBvdmVyZmxvdzogPHR5cGU+XG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIG92ZXJmbG93OiBhdXRvXG4gKiAgICAgb3ZlcmZsb3c6IGhpZGRlblxuICogICAgIG92ZXJmbG93OiBlbGxpcHNpc1xuICpcbiAqL1xuXG5vdmVyZmxvdygpXG4gIGlmIGFyZ3VtZW50c1swXSA9PSBlbGxpcHNpc1xuICAgIGVsbGlwc2lzKClcbiAgZWxzZVxuICAgIG92ZXJmbG93OiBhcmd1bWVudHNcbiIsIi8qXG4gKiBWZW5kb3IgXCJkaXNwbGF5OiBmbGV4XCIgc3VwcG9ydCB3aXRoIGZhbGxiYWNrIHRvIG9ic29sZXRlIHZlcnNpb25zLlxuICovXG5cbmZsZXgtdmVyc2lvbiA/PSBib3ggZmxleFxuXG4vL1xuLy8gMS4gRGlzcGxheSB2YWx1ZXNcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4LWNvbnRhaW5lcnNcbi8vXG5kaXNwbGF5KHR5cGUsIGFyZ3MuLi4pXG4gIGlmIGZsZXggPT0gdHlwZSB8fCBpbmxpbmUtZmxleCA9PSB0eXBlXG4gICAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgICAgaWYgZmxleCA9PSB0eXBlXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94IGFyZ3NcbiAgICAgICAgZGlzcGxheTogdmVuZG9yLXZhbHVlKGJveCBhcmdzLCBvbmx5OiBtb3ogd2Via2l0KVxuICAgICAgZWxzZVxuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoaW5saW5lLWJveCBhcmdzLCBvbmx5OiBtb3ogd2Via2l0KVxuICAgIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpIC8vIG92ZXJ3cml0ZXMgb2xkIHdlYmtpdFxuICBlbHNlXG4gICAgZGlzcGxheTogYXJndW1lbnRzXG5cbi8qXG4gKiBOZXcgc3ludGF4IGZvciBicm93c2VycyBsaWtlIEdvb2dsZSBDaHJvbWUuXG4gKiBQbHVzIGEgdHJhbnNsYXRpb24gdG8gdGhlIG9sZCBzeW50YXgsIGlmIHBvc3NpYmxlLlxuICovXG5cblxuLy9cbi8vIDUuIE9yZGVyaW5nIGFuZCBPcmllbnRhdGlvblxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI29yZGVyaW5nLWFuZC1vcmllbnRhdGlvblxuLy9cbi1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihkaXJlY3Rpb24pXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICBpZiByb3ctcmV2ZXJzZSA9PSBkaXJlY3Rpb24gfHwgY29sdW1uLXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1kaXJlY3Rpb24nLCByZXZlcnNlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gICAgaWYgcm93ID09IGRpcmVjdGlvbiB8fCByb3ctcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LW9yaWVudCcsIGhvcml6b250YWwsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG4gICAgZWxzZSBpZiBjb2x1bW4gPT0gZGlyZWN0aW9uIHx8IGNvbHVtbi1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtb3JpZW50JywgdmVydGljYWwsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbi1mbGV4LW9ic29sZXRlLXdyYXAodmFsdWUpXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICAvLyBXQVJOOiB3cmFwLXJldmVyc2UgZG9lcyBub3QgaGF2ZSBhIGJveCBlcXVpdmFsZW50LiBUaGlzIHdpbGwgcmVuZGVyIGluIGRpZmZlcmVudCBtYW5uZXJzXG4gICAgLy8gICAgb24gYm94IHZzLiBmbGV4IHZhbHVlcy5cbiAgICBpZiAnd3JhcCcgPT0gdmFsdWUgfHwgd3JhcC1yZXZlcnNlID09IHZhbHVlXG4gICAgICB2ZW5kb3IoJ2JveC1saW5lcycsIG11bHRpcGxlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuICAgIGVsc2UgaWYgbm93cmFwID09IHZhbHVlXG4gICAgICB2ZW5kb3IoJ2JveC1saW5lcycsIHNpbmdsZSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuZmxleC1kaXJlY3Rpb24oZGlyZWN0aW9uKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oZGlyZWN0aW9uKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1kaXJlY3Rpb24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuZmxleC13cmFwKHZhbHVlKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKHZhbHVlKVxuXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXdyYXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuZmxleC1mbG93KClcbiAgLy8gb2Jzb2xldGVcbiAgLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGFyZ3VtZW50c1swXSlcbiAgLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGFyZ3VtZW50c1sxXSlcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcChhcmd1bWVudHNbMF0pXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAoYXJndW1lbnRzWzFdKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1mbG93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cblxub3JkZXIoKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtb3JkaW5hbC1ncm91cCcsIGFyZ3VtZW50cywgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtb3JkZXInLCBhcmd1bWVudHMsIG9ubHk6IG1zKVxuICAgIHZlbmRvcignb3JkZXInLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuXG4vL1xuLy8gNy4gRmxleGliaWxpdHlcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4aWJpbGl0eVxuLy9cbmZsZXgtZ3Jvdyhncm93dGgpXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1mbGV4JywgZ3Jvd3RoKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1ncm93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgtYmFzaXMoKVxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1iYXNpcycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5mbGV4LXNocmluaygpXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXNocmluaycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5mbGV4KGdyb3d0aClcblxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgc2hyaW5rID0gMVxuXG4gICAgaWYgbm9uZSA9PSBncm93dGggfHwgaW5pdGlhbCA9PSBncm93dGhcbiAgICAgIC8vIFdlbGwga25vd24gdmFsdWVzXG4gICAgICBzaHJpbmsgPSAwIGlmIG5vbmUgPT0gZ3Jvd3RoXG4gICAgICBncm93dGggPSAwXG4gICAgZWxzZSBpZiBpcy13aWR0aChncm93dGgpID09IHRydWVcbiAgICAgIC8vIEJhc2lzIGlzIGRlZmluZWQgYXMgdGhlIGZpcnN0IHBhcmFtZXRlclxuICAgICAgZ3Jvd3RoID0gYXJndW1lbnRzWzFdIHx8IDBcbiAgICAgIHNocmluayA9IGFyZ3VtZW50c1syXSBpZiAzIDw9IGxlbmd0aChhcmd1bWVudHMpXG4gICAgZWxzZSBpZiBhcmd1bWVudHNbMV0gJiYgaXMtd2lkdGgoYXJndW1lbnRzWzFdKSA9PSBmYWxzZVxuICAgICAgLy8gR3Jvd3RoIGlzIGZpcnN0IGFuZCBzaHJpbmsgaXMgc2Vjb25kXG4gICAgICBzaHJpbmsgPSBhcmd1bWVudHNbMV1cblxuICAgIC8vIFNpbmNlIHdlIGNhbid0IG1ha2UgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gZ3Jvd2luZyBhbmQgc2hyaW5raW5nIGluIHRoZSBib3ggbW9kZWwsIHRha2VcbiAgICAvLyB0aGUgb25lIHRoYXQgcHJvdmlkZXMgdGhlIG1vc3QgZmxleGliaWxpdHkuXG4gICAgdmVuZG9yKCdib3gtZmxleCcsIG1heChncm93dGgsIHNocmluayksIGlnbm9yZTogbXMpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cblxuLy8gY29udmVydHMgdGhlIGp1c3RpZmljYXRpb24gYWxpZ25tZW50XG4tY29udmVydC1qdXN0aWZ5KGFsaWduKVxuICBpZiBmbGV4LXN0YXJ0ID09IGFsaWduXG4gICAgcmV0dXJuIHN0YXJ0XG4gIGVsc2UgaWYgZmxleC1lbmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZW5kXG4gIGVsc2UgaWYgc3BhY2UtYXJvdW5kID09IGFsaWduXG4gICAgcmV0dXJuIGRpc3RyaWJ1dGVcbiAgZWxzZSBpZiBzcGFjZS1iZXR3ZWVuID09IGFsaWduXG4gICAgcmV0dXJuIGp1c3RpZnlcbiAgZWxzZVxuICAgIHJldHVybiBhbGlnblxuXG4vL1xuLy8gOC4gQWxpZ25tZW50XG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jYWxpZ25tZW50XG4vL1xuanVzdGlmeS1jb250ZW50KGFsaWduKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtcGFjaycsIC1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignanVzdGlmeS1jb250ZW50JywgYWxpZ24sIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuYWxpZ24tY29udGVudChhbGlnbilcbiAgLy8gV0FSTjogT2Jzb2xldGUgc3BlYyBkb2VzIG5vdCBhbGxvdyBmb3IgYWRqdXN0bWVudCBoZXJlXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWxpbmUtcGFjaycsIC1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ2FsaWduLWNvbnRlbnQnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vLyBjb252ZXJ0cyBhbGlnbm1lbnQgZnJvbSAnZmxleCcgdG8gbm9ybWFsIHZhbHVlXG4tY29udmVydC1hbGlnbm1lbnQoYWxpZ24pXG4gIGlmIGZsZXgtc3RhcnQgPT0gYWxpZ25cbiAgICByZXR1cm4gc3RhcnRcbiAgZWxzZSBpZiBmbGV4LWVuZCA9PSBhbGlnblxuICAgIHJldHVybiBlbmRcbiAgZWxzZVxuICAgIHJldHVybiBhbGlnblxuXG5hbGlnbi1pdGVtcyhhbGlnbilcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ2FsaWduLWl0ZW1zJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmFsaWduLXNlbGYoYWxpZ24pXG4gIC8vIFdBUk46IE9ic29sZXRlIHNwZWMgZG9lcyBub3QgYWxsb3cgZm9yIG92ZXJyaWRpbmcgYWxpZ25tZW50IG9uIGluZGl2aWR1YWwgaXRlbXMuXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdhbGlnbi1zZWxmJywgYWxpZ24sIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcbiAgICB2ZW5kb3IoJ2ZsZXgtaXRlbS1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIG9ubHk6IG1zKVxuIiwiK3ByZWZpeC1jbGFzc2VzKHRvcC1oZWFkZXIpXG4gIC5cbiAgICBwb3NpdGlvbiBmaXhlZFxuXG4gICAgdG9wIDBcbiAgICBsZWZ0IDBcblxuICAgIHdpZHRoIDEwMCVcblxuICAgIG92ZXJmbG93IGhpZGRlblxuXG4gICAgei1pbmRleCAxMDAwXG5cbiAgICBiYWNrZ3JvdW5kIG5vbmVcblxuICAgIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciAuMnNcblxuICAuLS1zaG93ICZcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgcmlnaHQgMFxuICAgICAgYm90dG9tIDBcblxuICAgICAgb3BhY2l0eSAxXG5cbiAgICAgIGJhY2tncm91bmQtY29sb3IgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXG5cbiAgICAgIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciAuMnNcblxuICAuX19sb2dvXG4gICAgbWF4LXdpZHRoIDEwMCVcbiAgICBoZWlnaHQgMTAwJVxuICAgIHdpZHRoIGF1dG9cblxuICAgICYtbGlua1xuICAgICAgbWFyZ2luIDI2cHggMCAwXG5cbiAgICAgIGZsb2F0IGxlZnRcbiAgICAgIFxuICAgICAgaGVpZ2h0IDc1cHhcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgbWFyZ2luIDE3cHggNXB4IDBcbiAgICAgICAgXG4gICAgICAgIGhlaWdodCAoMTE4IC8gMilweFxuXG4gIC5fX21haW5cbiAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgIGZsb2F0IHJpZ2h0XG4gICAgdGV4dC1hbGlnbiByaWdodFxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIGZsb2F0IG5vbmVcbiAgICAgIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgICAgIGFic29sdXRlLWNlbnRlcigpXG5cbiAgLl9fbWFpbl9fbGlzdFxuICAgIGJsYW5rLWxpc3QoKVxuXG4gICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcbiAgICBtYXJnaW4gMzhweCAyMHB4IDM1cHhcblxuICAgIGZvbnQtZmFtaWx5ICRnb3RoaWNcbiAgICBmb250LXNwZWNzKDE4LCBhdXRvLCA3NSlcbiAgICB0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcblxuICAgIHZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXG4gICAgdHJhbnNpdGlvbiBhbGwgMXNcblxuICAgIHRyYW5zZm9ybSB0cmFuc2xhdGVYKDc1cHgpXG5cbiAgICB3aGl0ZS1zcGFjZSBub3dyYXBcblxuICAgIG92ZXJmbG93IGhpZGRlblxuXG4gICAgbWF4LXdpZHRoIDkwJVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIGRpc3BsYXkgbm9uZVxuXG4gICAgLi0tY29sbGFwc2UgJlxuICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZVgoMClcbiAgICAgIG9wYWNpdHkgMFxuICAgICAgbWF4LXdpZHRoIDBcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgICAgZGlzcGxheSBub25lXG5cbiAgICAuLS1zaG93ICZcbiAgICAgIHRyYW5zZm9ybSB0cmFuc2xhdGVYKDApXG4gICAgICBvcGFjaXR5IDFcbiAgICAgIG1heC13aWR0aCAxMDAlXG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICAgIGZvbnQtc3BlY3MoNDgpXG5cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgIG1hcmdpbiAwXG5cbiAgICAgICAgb3BhY2l0eSAxXG5cbiAgICAgICAgdHJhbnNmb3JtIG5vbmVcblxuICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgZm9udC1zcGVjcyg0MilcblxuICAuX19tYWluX19pdGVtXG4gICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcblxuICAgIG1hcmdpbiAwIDEwcHhcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgIG1hcmdpbiAwIDVweFxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgIHBhZGRpbmcgMnZoIDBcblxuICAuX19tYWluX19saW5rXG4gICAgZGlzcGxheSBibG9ja1xuICAgIFxuICAgIHBhZGRpbmcgMTRweCAxMHB4IDRweFxuXG4gICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcbiAgICBjb2xvciAkYmxhY2tcbiAgICBcbiAgICAmX190eHRcbiAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgICBcbiAgICAgIGJvcmRlci1ib3R0b20gc29saWQgMnB4IHRyYW5zcGFyZW50XG4gICAgXG4gICAgJjpob3ZlciAmX190eHRcbiAgICAgIGJvcmRlci1jb2xvciB0cmFuc3BhcmVudFxuXG4gIC5fX2hhbWJ1cmdlclxuICAgIGZsb2F0IHJpZ2h0XG4gICAgZGlzcGxheSBibG9ja1xuXG4gICAgbWFyZ2luIDMuMmVtIDBcbiAgICBwYWRkaW5nIDBcblxuICAgIGJ1dHRvbi1yZXNldCgpXG5cbiAgICB3aWR0aCAzNXB4XG5cbiAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuICAgIHRyYW5zaXRpb24gYWxsIDFzLCBvcGFjaXR5IDAuMnNcblxuICAgIHRyYW5zZm9ybSB0cmFuc2xhdGVYKDMwMCUpXG5cbiAgICBvcGFjaXR5IDBcblxuICAgIC4tLWNvbGxhcHNlICZcbiAgICAgIG9wYWNpdHkgMVxuICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZVgoMClcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICBvcGFjaXR5IDFcbiAgICAgIHRyYW5zZm9ybSBub25lXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIG1hcmdpbiAyMXB4IDVweFxuXG4gICAgJi1saW5lXG4gICAgICBkaXNwbGF5IGJsb2NrXG5cbiAgICAgIG1hcmdpbiAxMnB4IDBcblxuICAgICAgd2lkdGggMzVweFxuICAgICAgaGVpZ2h0IDJweFxuXG4gICAgICBiYWNrZ3JvdW5kICRibGFja1xuXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luIGNlbnRlclxuXG4gICAgICBvcGFjaXR5IDFcblxuICAgICAgdHJhbnNpdGlvbiBhbGwgLjJzLCB0cmFuc2Zvcm0gMC41c1xuXG4gICAgICAmOm50aC1jaGlsZCgxKVxuICAgICAgICAuLS1zaG93ICZcbiAgICAgICAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlWSgxNHB4KSByb3RhdGUoLTQ1ZGVnKVxuXG4gICAgICAmOm50aC1jaGlsZCgzKVxuICAgICAgICAuLS1zaG93ICZcbiAgICAgICAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlWSgtMTRweCkgcm90YXRlKDQ1ZGVnKVxuXG4gICAgICAmOm50aC1jaGlsZCgyKVxuICAgICAgICAuLS1zaG93ICZcbiAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICB0cmFuc2l0aW9uIGFsbCAuMXNcblxuLmN1cnJlbnQtbWVudS1pdGVtXG4uc2luZ2xlLW5ld3MgLm1lbnUtaXRlbS1vYmplY3QtbmV3c1xuICAgJiA+IGFcbiAgICAudG9wLWhlYWRlcl9fbWFpbl9fbGlua19fdHh0XG4gICAgICBib3JkZXItY29sb3IgJGJsYWNrXG4gICAgXG4gICAgJjpob3ZlciAudG9wLWhlYWRlcl9fbWFpbl9fbGlua19fdHh0XG4gICAgICBib3JkZXItY29sb3IgaW5oZXJpdFxuICAiLCJhYnNvbHV0ZS1jZW50ZXIoKVxuICBwb3NpdGlvbiBhYnNvbHV0ZVxuICB0b3AgNTAlXG4gIGxlZnQgNTAlXG5cbiAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgtNTAlLC01MCUpXG5cbmhvcnotY2VudGVyKClcbiAgcG9zaXRpb24gYWJzb2x1dGVcbiAgbGVmdCA1MCVcblxuICB0cmFuc2Zvcm0gdHJhbnNsYXRlKC01MCUsMClcblxudmVydC1jZW50ZXIoKVxuICBwb3NpdGlvbiBhYnNvbHV0ZVxuICB0b3AgNTAlXG5cbiAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgwLC01MCUpXG5cbmJsYW5rLWxpc3QoKVxuICBtYXJnaW4gMFxuICBwYWRkaW5nIDBcblxuICBsaXN0LXN0eWxlLXR5cGUgbm9uZVxuXG5idXR0b24tcmVzZXQoKVxuICBhcHBlYXJhbmNlIG5vbmVcbiAgYmFja2dyb3VuZCBub25lXG4gIGJvcmRlciBub25lXG4gIG91dGxpbmUgbm9uZVxuICBjdXJzb3IgcG9pbnRlclxuXG5yYW5kb20obWluLG1heClcbiAgcmV0dXJuIGZsb29yKG1hdGgoMCwgJ3JhbmRvbScpKihtYXggLSBtaW4gKyAxKSArIG1pbilcbiIsIitwcmVmaXgtY2xhc3Nlcyhmb290ZXIpXG4gIC5cbiAgICBtYXJnaW4tdG9wIDQwcHhcbiAgICBwYWRkaW5nIDgwcHggMCA2MHB4XG4gICAgXG4gICAgYmFja2dyb3VuZCAkd2hpdGVcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgbWFyZ2luLXRvcCAzMHB4XG4gICAgICBwYWRkaW5nIDYwcHggMCA1MHB4XG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIG1hcmdpbi10b3AgMjBweFxuICAgICAgcGFkZGluZyAzMHB4IDAgMjBweFxuXG4gIC5fX3NlY3Rpb25cbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuXG4gICAgbWFyZ2luIDQwcHggMFxuXG4gICAgd2lkdGggMjUlXG5cbiAgICB2ZXJ0aWNhbC1hbGlnbiB0b3BcblxuICAgIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgICBmb250LXNwZWNzKDE2LCAyNywgNTApXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgd2lkdGggNTAlXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgbWFyZ2luIDQwcHggYXV0byA1MHB4XG4gICAgICBcbiAgICAgIHdpZHRoIDk1JVxuXG4gICAgYVxuICAgICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcblxuICAgICAgY29sb3IgJGJsYWNrXG5cbiAgICAmLS1mb3JtXG4gICAgICBmb3JtXG4gICAgICAgIG1hcmdpbiAwIGF1dG9cbiAgICAgICAgbWF4LXdpZHRoIDE0ZW1cblxuICAgICAgaW5wdXRcbiAgICAgIGJ1dHRvblxuICAgICAgICBidXR0b24tcmVzZXQoKVxuXG4gICAgICAgIGZvbnQtc2l6ZSAxZW1cbiAgICAgICAgZm9udC1mYW1pbHkgJGNhbGlicmVcbiAgICAgICAgbGV0dGVyLXNwYWNpbmcgMC4wNWVtXG5cbiAgICAgICAgYm9yZGVyLWJvdHRvbSAzcHggc29saWQgJGJsYWNrXG5cbiAgICAgICAgaGVpZ2h0IDFlbVxuICAgICAgICBwYWRkaW5nLWJvdHRvbSAwLjVlbVxuXG4gICAgICAgIHZlcnRpY2FsLWFsaWduIGJvdHRvbVxuXG4gICAgICBpbnB1dFxuICAgICAgICB3aWR0aCBjYWxjKDEwMCUgLSAyZW0pXG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlclxuICAgICAgICAgIGNvbG9yICRibGFja1xuXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXJcbiAgICAgICAgICBjb2xvciAkYmxhY2tcblxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlclxuICAgICAgICAgIGNvbG9yICRibGFja1xuXG4gICAgICAgICY6LW1vei1wbGFjZWhvbGRlclxuICAgICAgICAgIGNvbG9yICRibGFja1xuXG4gICAgICBidXR0b25cbiAgICAgICAgcGFkZGluZyAwXG4gICAgICAgIG1hcmdpbiAwXG5cbiAgICAgICAgd2lkdGggMWVtXG4gICAgICAgIGhlaWdodCAyZW1cblxuICAgICAgICAmOmFmdGVyXG4gICAgICAgICAgZm9udC1mYW1pbHkgJ25mLWZvbnRlbGxvJ1xuICAgICAgICAgIGNvbnRlbnQgJ1xcRTgwMidcblxuICAgICAgICAgIGZvbnQtc2l6ZSAwLjc1ZW1cbiAgICAgICAgICBmb250LXdlaWdodCA5MDBcbiAgICAgICAgICBsaW5lLWhlaWdodCAyZW1cblxuICAgICAgICAmOmZvY3VzXG4gICAgICAgICAgY29sb3IgJHdoaXRlXG5cbiAgICAgICAgJjpob3ZlclxuICAgICAgICAgIGJhY2tncm91bmQgJGJsYWNrXG4gICAgICAgICAgY29sb3IgJHdoaXRlXG5cbiAgLl9fc2VjdGlvbi1oZWFkZXJcbiAgICBtYXJnaW4tYm90dG9tICgxMS8gMTgpZW1cblxuICAgIGZvbnQtZmFtaWx5ICRnb3RoaWNcbiAgICBmb250LXNwZWNzKDE4LCBhdXRvLCAxMDApXG4gICAgZm9udC1zaXplICgxOCAvIDE2KWVtXG4gICAgdGV4dC10cmFuc2Zvcm0gdXBwZXJjYXNlXG5cbiAgLl9fbGlzdFxuICAgIG1hcmdpbiAwXG4gICAgcGFkZGluZyAwXG5cbiAgICBsaXN0LXN0eWxlLXR5cGUgbm9uZVxuXG4gIC5fX2xpc3QtaXRlbVxuICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgbWFyZ2luIDAgMC40ZW1cblxuIiwiW25mLXNsaWRlcl1cbiAgcG9zaXRpb24gcmVsYXRpdmVcbiAgXG4gIGZpZ3VyZVxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgXG4gICAgbWFyZ2luIDAgYXV0b1xuICAgIFxuICBpbWdcbiAgICBkaXNwbGF5IGJsb2NrXG4gICAgXG4gICAgbWFyZ2luIDAgYXV0b1xuICAgIFxuICAgIHRyYW5zaXRpb24gb3BhY2l0eSAwLjJzXG4gICAgXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eShoaWRkZW4pXG4gICAgXG4gICAgJi5uZy1oaWRlXG4gICAgICBob3J6LWNlbnRlcigpXG4gICAgICBcbiAgICAgIG9wYWNpdHkgMFxuICAgICAgXG4gICAgICB0b3AgMFxuXG4rcHJlZml4LWNsYXNzZXMoc2xpZGVyKVxuICBcbiAgLl9fcHJldlxuICAuX19uZXh0XG4gICAgYnV0dG9uLXJlc2V0KClcbiAgICBcbiAgICBtYXJnaW4gMFxuICAgIHBhZGRpbmcgMFxuICAgIFxuICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgXG4gICAgdG9wIDBcbiAgICBib3R0b20gMFxuICAgIFxuICAgIGZvbnQtc3BlY3MoODUpXG4gICAgXG4gICAgd2lkdGggKDIyMCAvIDE2KSVcbiAgICBcbiAgICB0cmFuc2l0aW9uIDAuMnNcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgIGZvbnQtc3BlY3MoNDUpXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIGZvbnQtc3BlY3MoMzApXG4gICAgXG4gICAgJjphZnRlclxuICAgICAgZm9udC1mYW1pbHkgJ25mLWZvbnRlbGxvJ1xuICAgIFxuICAgICY6aG92ZXJcbiAgICAgIG9wYWNpdHkgMC44XG4gIFxuICAuX19wcmV2XG4gICAgbGVmdCAwXG4gICAgXG4gICAgJjphZnRlclxuICAgICAgY29udGVudCAnXFxFODAxJ1xuICAgIFxuICAuX19uZXh0XG4gICAgcmlnaHQgMFxuICAgIFxuICAgICY6YWZ0ZXJcbiAgICAgIGNvbnRlbnQgJ1xcRTgwMidcbiAgICAiLCIuZmVlZFxuICB3aGl0ZS1zcGFjZSBub3dyYXBcblxuICAmLWl0ZW1cbiAgICB3aWR0aCAyMCVcbiAgICBoZWlnaHQgYXV0b1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldFdpZGUpXG4gICAgICB3aWR0aCAzMy4zMzMlXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgd2lkdGggNTAlXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCA1MDBweClcbiAgICAgIHdpZHRoIDEwMCVcblxuICAgICYtLXdpZGVcbiAgICAgIHdpZHRoIDQwJVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgd2lkdGggNjYuNjY2JVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgICB3aWR0aCAxMDAlXG5cbiAgICBpbWdcbiAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgIHdpZHRoIGNhbGMoMTAwJSAtIDIwcHgpXG4gICAgICBtYXJnaW4gMCAxMHB4IDIwcHhcbiAgICAgIGhlaWdodCBhdXRvXG4gICAgICB0cmFuc2l0aW9uIGFsbCAuNHMgZWFzZVxuXG4gICZfX2xvYWRpbmdcbiAgICB3aWR0aCA4MHB4XG4gICAgaGVpZ2h0IGF1dG9cbiAgICBtYXgtd2lkdGggMjAlXG5cbiAgICBhbmltYXRpb24gd29ya0ludHJvR3JhZGllbnQgNXMgZWFzZSBpbmZpbml0ZVxuXG4gICZfX21vZGFsXG4gICAgcG9zaXRpb24gZml4ZWRcbiAgICB0b3AgMFxuICAgIGxlZnQgMFxuICAgIHJpZ2h0IDBcbiAgICBib3R0b20gMFxuXG4gICAgd2lkdGggMTAwdndcbiAgICBoZWlnaHQgMTAwdmhcblxuICAgIGJhY2tncm91bmQgYWxwaGEoJHdoaXRlLCA5NSUpXG5cbiAgICBoMlxuICAgICAgbWFyZ2luLWJvdHRvbSAwXG5cbiAgICAgIHRleHQtdHJhbnNmb3JtIHVwcGVyY2FzZVxuICAgICAgZm9udC1mYW1pbHkgJGdvdGhpY1xuICAgICAgZm9udC1zcGVjcyg1NiwgYXV0bywgMTI0KVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgICBmb250LXNwZWNzKDQ4KVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgZm9udC1zcGVjcyg0MilcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgICAgZm9udC1zcGVjcygzMClcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgZm9udC1zcGVjcygyMClcblxuICAgICYubmctZW50ZXJcbiAgICAmLm5nLWxlYXZlXG4gICAgICB0cmFuc2l0aW9uIC40cyBlYXNlIGFsbFxuXG4gICAgJi5uZy1lbnRlclxuICAgICYubmctbGVhdmUubmctbGVhdmUtYWN0aXZlXG4gICAgICBvcGFjaXR5IDBcblxuICAgICYubmctZW50ZXIubmctZW50ZXItYWN0aXZlXG4gICAgJi5uZy1sZWF2ZVxuICAgICAgb3BhY2l0eSAxXG5cbiAgICBidXR0b25cbiAgICAgIGFwcGVhcmFuY2Ugbm9uZVxuXG4gICAgICBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50XG4gICAgICBib3JkZXIgMFxuICAgICAgY29sb3IgJGJsYWNrXG5cbiAgICAgIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgICAgIHdpZHRoIDIwJVxuXG4gICAgICB0cmFuc2l0aW9uIGFsbCAuMnMgZWFzZVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgICB3aWR0aCAxMCVcblxuICAgICAgJjpmb2N1c1xuICAgICAgICBvdXRsaW5lIDBcblxuICAgICYtaW5uZXJcbiAgICAgIGFic29sdXRlLWNlbnRlcigpXG5cbiAgICAgIG1heC1oZWlnaHQgODV2aFxuICAgICAgb3ZlcmZsb3cgc2Nyb2xsXG5cbiAgICAgIHdpZHRoIDYwJVxuICAgICAgcGFkZGluZyAxNXZoIDIwJSAwXG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICAgIHdpZHRoIDgwJVxuICAgICAgICBwYWRkaW5nIDEwdmggMTAlIDBcblxuICAgICAgaW1nXG4gICAgICAgIHdpZHRoIGF1dG9cbiAgICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgICAgaGVpZ2h0IGF1dG9cbiAgICAgICAgbWF4LWhlaWdodCA3MHZoXG5cbiAgICAmLW5leHRcbiAgICAgIHJpZ2h0IDBcblxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgY29udGVudCAnXFxFODAyJ1xuXG4gICAgJi1wcmV2XG4gICAgICBsZWZ0IDBcblxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgY29udGVudCAnXFxFODAxJ1xuXG4gICAgJi1wcmV2XG4gICAgJi1uZXh0XG5cbiAgICAgIHBhZGRpbmcgMFxuXG4gICAgICB2ZXJ0LWNlbnRlcigpXG4gICAgICB6LWluZGV4IDEwMDBcblxuICAgICAgZm9udC1zcGVjcyg4NSwgODUgKiAyKVxuICAgICAgZm9udC1mYW1pbHkgJ25mLWZvbnRlbGxvJ1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgZm9udC1zcGVjcyg0NSlcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgZm9udC1zcGVjcygzMClcblxuICAgICYtY2xvc2VcbiAgICAgIHBvc2l0aW9uIGFic29sdXRlXG5cbiAgICAgIHBhZGRpbmcgMFxuXG4gICAgICB0b3AgNiVcbiAgICAgIHJpZ2h0IDBcblxuICAgICAgei1pbmRleCAxMDAwXG5cbiAgICAgIGZvbnQtc3BlY3MoMTIwLCAxMjApXG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICB0b3AgMTAlXG4gICAgICAgIGZvbnQtc3BlY3MoNjApXG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICAgIHRvcCAxMiVcbiAgICAgICAgcmlnaHQgMSVcblxuICAgICAgICBmb250LXNwZWNzKDQwKVxuXG4gIGJvdHRvbVxuICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgYm90dG9tIDBcblxuLmhpZGVcbiAgb3BhY2l0eSAwXG5cbi5zaG93XG4gIG9wYWNpdHkgMVxuXG4ubW9kYWwtb3ZlcmZsb3dcbiAgb3ZlcmZsb3cteSBoaWRkZW5cbiIsIitwcmVmaXgtY2xhc3NlcyhmbHRyKVxuICAuXG4gICAgbWFyZ2luICg3MCAvIDI0KWVtIGF1dG9cbiAgICBcbiAgICBmb250LWZhbWlseSAkZ290aGljXG4gICAgZm9udC1zcGVjcygyNCwgYXV0bywgMTI0KVxuICAgIHRleHQtdHJhbnNmb3JtIHVwcGVyY2FzZVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICBmb250LXNwZWNzKDE4KVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICBtYXJnaW4gKDYwIC8gMjQpZW0gYXV0b1xuICAgICAgZm9udC1zcGVjcygxNilcbiAgICBcbiAgLl9fYnRuXG4gICAgYnV0dG9uLXJlc2V0KClcbiAgICBcbiAgICBmb250LWZhbWlseSAkZ290aGljXG4gICAgZm9udC1zcGVjcygyNCwgYXV0bywgMTI0KVxuICAgIGZvbnQtc2l6ZSAxZW1cbiAgICB0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgZm9udC1zcGVjcygxOClcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgZm9udC1zcGVjcygxNilcbiAgICBcbiAgICAmOmFmdGVyXG4gICAgICBjb250ZW50ICdcXEU4MDMnXG4gICAgICBcbiAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgICBcbiAgICAgIGZvbnQtZmFtaWx5ICduZi1mb250ZWxsbydcbiAgICAgIGZvbnQtc2l6ZSAwLjVlbVxuICAgICAgXG4gICAgICBwYWRkaW5nIDAgMC4yNWVtXG4gICAgICB3aWR0aCAxLjVlbVxuICAgICAgXG4gICAgICB2ZXJ0aWNhbC1hbGlnbiB0ZXh0LWJvdHRvbVxuICAgICAgXG4gICAgICB0cmFuc2l0aW9uIDAuMnNcbiAgICBcbiAgICAgIC4tLW9wZW4gJlxuICAgICAgICB0cmFuc2Zvcm0gcm90YXRlKDE4MGRlZylcbiAgICBcbiAgLl9fY3VyXG4gIC5fX2xpbmtcbiAgICBwYWRkaW5nLWJvdHRvbSAoNCAvIDI0KWVtXG4gICAgXG4gICAgY29sb3IgJGJsYWNrXG4gICAgXG4gICAgYm9yZGVyLWJvdHRvbSAoNCAvIDI0KWVtIHNvbGlkICRibGFja1xuICAgIFxuICAgIHRleHQtZGVjb3JhdGlvbiBub25lXG4gIFxuICAuX19saW5rXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvciB0cmFuc3BhcmVudFxuICAgIFxuICAgIGEmOmhvdmVyXG4gICAgICBjb2xvciAkYmxhY2tcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3IgJGJsYWNrXG4gICAgICBcbiAgLl9fbGlzdFxuICAgIGJsYW5rLWxpc3QoKVxuICAgIGhvcnotY2VudGVyKClcbiAgICBcbiAgICBvcGFjaXR5IDBcbiAgICBcbiAgICB0cmFuc2l0aW9uIDAuMnNcbiAgICBcbiAgICB6LWluZGV4IDEwXG4gICAgXG4gICAgLi0tb3BlbiAmXG4gICAgICBvcGFjaXR5IDFcbiAgXG4gIC5fX2l0ZW1cbiAgICBtYXJnaW4gMS4yZW0gYXV0byAxcHhcbiAgXG4gIC5fX2xpbmtcbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuIiwiJHByb2otZ3V0dGVyID0gMTIwXG4kcHJvai1tYXggPSA3MDVcbiRwcm9qLXNxID0gNTIwXG4vLyAyIHVwXG4kZ3JpZC1tYXggPSAkcHJvai1tYXggKiAyICsgJHByb2otZ3V0dGVyICogMlxuLy8gMyB1cFxuJGdyaWQtbWF4LXRycGwgPSAkcHJvai1tYXggKiAzICsgJHByb2otZ3V0dGVyICogM1xuXG4rcHJlZml4LWNsYXNzZXMod29yaylcblxuICAuX19pbnRyb1xuICAgIHBhZGRpbmcgMCAxMCVcblxuICAgIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgICBhbmltYXRpb24gd29ya0ludHJvR3JhZGllbnQgNXMgZWFzZSBpbmZpbml0ZVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICBwYWRkaW5nIDAgNSVcblxuICAgICYtdHh0XG4gICAgICBtYXJnaW4gMCBhdXRvIDYwcHhcbiAgICAgIHBhZGRpbmcgKDE1MCAvIDQ1KWVtIDBcblxuICAgICAgY29sb3IgJHdoaXRlXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICAgIG1hcmdpbiAwIGF1dG8gMjBweFxuICAgICAgICBwYWRkaW5nICg4MCAvIDQ1KWVtIDBcbiAgICAgICAgXG4gIC5fX2dyaWRcbiAgICBkaXNwbGF5IGZsZXhcbiAgICBcbiAgICBtYXJnaW4gMCBwZXJjZW50YWdlKCRwcm9qLWd1dHRlciAvIDggLyAkZ3JpZC1tYXgpXG5cbiAgICB3aWR0aCAoMTAwIC0gJHByb2otZ3V0dGVyIC8gNCAvICRncmlkLW1heCAqIDEwMCklXG4gICAgbWF4LXdpZHRoICgkZ3JpZC1tYXgtdHJwbClweFxuXG4gICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgdGV4dC1hbGlnbiBjZW50ZXJcbiAgICBqdXN0aWZ5LWNvbnRlbnQgY2VudGVyXG4gICAgZmxleC13cmFwIHdyYXBcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGRlc2t0b3BTbWFsbClcbiAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgIG1hcmdpbiAwIGF1dG9cblxuICAuX19wcm9qXG4gICAgbWFyZ2luIDNlbSBwZXJjZW50YWdlKCRwcm9qLWd1dHRlciAvIDMgLyAkZ3JpZC1tYXgtdHJwbClcbiAgICB3aWR0aCAoKCRwcm9qLW1heCAvICRncmlkLW1heC10cnBsKSAqIDEwMCl2d1xuICAgIG1heC13aWR0aCBwZXJjZW50YWdlKCgkcHJvai1tYXgpIC8gJGdyaWQtbWF4LXRycGwpXG5cbiAgICBjdXJzb3IgcG9pbnRlclxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRkZXNrdG9wU21hbGwpXG4gICAgICB3aWR0aCAxMDAlXG4gICAgICBtYXgtd2lkdGggODAlXG4gICAgICBcbiAgICAgIG1hcmdpbiAwIGF1dG8gM2VtXG4gICAgICBcbiAgICAgICY6bGFzdC1jaGlsZFxuICAgICAgICBtYXJnaW4tYm90dG9tIDBcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHRhYmxldFdpZGUpXG4gICAgICBtYXgtd2lkdGggMTAwJVxuICAgIFxuICAgIGFcbiAgICAgIHRleHQtZGVjb3JhdGlvbiBub25lXG5cbiAgICAmOm50aC1jaGlsZChvZGQpXG4gICAgICAuX19wcm9qLWh2clxuICAgICAgICBsZWZ0IDBcbiAgICAgICAgcmlnaHQgMTAwJVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbilcbiAgICAgIC5fX3Byb2otaHZyXG4gICAgICAgIHJpZ2h0IDBcbiAgICAgICAgbGVmdCAxMDAlXG5cbiAgICAmOm50aC1jaGlsZChvZGQpXG4gICAgICBhOmhvdmVyXG4gICAgICAgIC5fX3Byb2otaHZyXG4gICAgICAgICAgcmlnaHQgMFxuXG4gICAgJjpudGgtY2hpbGQoZXZlbilcbiAgICAgIGE6aG92ZXJcbiAgICAgICAgLl9fcHJvai1odnJcbiAgICAgICAgICBsZWZ0IDBcblxuICAgICYtLXRhbGxcbiAgICAgIHdpZHRoIGF1dG9cbiAgICAgIFxuICAgICAgaGVpZ2h0ICgoJHByb2otbWF4IC8gJGdyaWQtbWF4LXRycGwpICogMTAwKXZ3XG4gICAgICBtYXgtaGVpZ2h0ICgkcHJvai1tYXgpcHhcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRkZXNrdG9wU21hbGwpXG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgaGVpZ2h0IGF1dG9cbiAgICAgICAgbWF4LWhlaWdodCBub25lXG5cbiAgICAmLS1zcXJcbiAgICAgIHdpZHRoICgoJHByb2otc3EgLyAkZ3JpZC1tYXgtdHJwbCkgKiAxMDApdndcbiAgICAgIG1heC13aWR0aCAoJHByb2otc3EpcHhcbiAgICAgIGhlaWdodCBhdXRvXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZGVza3RvcFNtYWxsKVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIG1heC13aWR0aCBub25lXG4gICAgICAgIGhlaWdodCBhdXRvXG5cbiAgICAmLWh2clxuICAgICYtdHh0XG4gICAgICB0cmFuc2l0aW9uIDAuMnNcblxuICAgICYtaW1nXG4gICAgICBkaXNwbGF5IGJsb2NrXG5cbiAgICAgIG1hcmdpbiAwIGF1dG9cblxuICAgICAgd2lkdGggYXV0b1xuICAgICAgaGVpZ2h0IGF1dG9cbiAgICAgIG1heC13aWR0aCAxMDAlXG4gICAgICBtYXgtaGVpZ2h0IDEwMCVcblxuICAgICYtdGl0bGVcbiAgICAgIEBleHRlbmQgLmdvdGhpY1xuICAgICAgZm9udC1zcGVjcyg0OClcblxuICAgICAgbWFyZ2luIDAuMWVtIDBcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJGRlc2t0b3ApXG4gICAgICAgIGZvbnQtc3BlY3MoMzYpXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICRkZXNrdG9wU21hbGwpXG4gICAgICAgIGZvbnQtc3BlY3MoMjQsIDM2LCAxMjUpXG5cbiAgICAmLWNhdHNcbiAgICAgIEBleHRlbmQgLmJvZHktY29weVxuICAgICAgZm9udC1zcGVjcygyNilcblxuICAgICAgbWFyZ2luIDAgYXV0b1xuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkZGVza3RvcClcbiAgICAgICAgZm9udC1zcGVjcygxNilcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJGRlc2t0b3BTbWFsbClcbiAgICAgICAgZm9udC1zcGVjcygxNCwgMjIsIDUwKVxuXG4gIC5fX3Byb2otdHh0XG4gICAgYWJzb2x1dGUtY2VudGVyKClcblxuICAgIHdpZHRoIDkyJVxuXG4gICAgb3BhY2l0eSAwXG5cbiAgICBjb2xvciAkd2hpdGVcblxuICAgIC5fX3Byb2o6aG92ZXIgJlxuICAgICAgb3BhY2l0eSAxXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJGRlc2t0b3BTbWFsbClcbiAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICBcbiAgICAgIHRvcCAwXG4gICAgICBsZWZ0IDBcblxuICAgICAgd2lkdGggMTAwJVxuICAgICAgcGFkZGluZyAxZW0gMCAwXG5cbiAgICAgIGNvbG9yICRibGFja1xuICAgICAgdHJhbnNmb3JtIG5vbmVcbiAgICAgIFxuICAgICAgb3BhY2l0eSAxXG4gICAgICBcbiAgICAgIHRleHQtZGVjb3JhdGlvbiBub25lXG5cbiAgLl9fcHJvai1odnJcbiAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgIHRvcCAwXG4gICAgbGVmdCAwXG4gICAgcmlnaHQgMFxuICAgIGJvdHRvbSAwXG5cbiAgICBvcGFjaXR5IDBcblxuICAgIGJhY2tncm91bmQgIzAwNmRjMFxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRkZXNrdG9wU21hbGwpXG4gICAgICBkaXNwbGF5IG5vbmVcblxuICAgIC5fX3Byb2o6aG92ZXIgJlxuICAgICAgb3BhY2l0eSAwLjlcblxuQGtleWZyYW1lcyB3b3JrSW50cm9HcmFkaWVudFxuICAwJVxuICAgIGZpbHRlciBodWUtcm90YXRlKDBkZWcpXG4gICAgLXdlYmtpdC1maWx0ZXIgaHVlLXJvdGF0ZSgwZGVnKVxuICAxNSVcbiAgICBmaWx0ZXIgaHVlLXJvdGF0ZSgtNWRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKC01ZGVnKVxuICAzNSVcbiAgICBmaWx0ZXIgaHVlLXJvdGF0ZSgzNWRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKDM1ZGVnKVxuICA1MCVcbiAgICBmaWx0ZXIgaHVlLXJvdGF0ZSg0NWRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKDQ1ZGVnKVxuICAxMDAlXG4gICAgZmlsdGVyIGh1ZS1yb3RhdGUoMGRlZylcbiAgICAtd2Via2l0LWZpbHRlciBodWUtcm90YXRlKDBkZWcpXG4iLCJjYWxsZWQtZnJvbSA9ICgpXG5cbnZlbmRvcnMgPSBtb3ogd2Via2l0IG8gbXMgb2ZmaWNpYWxcblxuLy8gc3RyaW5naWZ5IHRoZSBnaXZlbiBhcmdcblxuLXN0cmluZyhhcmcpXG4gIHR5cGUoYXJnKSArICcgJyArIGFyZ1xuXG4vLyByZXF1aXJlIGEgY29sb3JcblxucmVxdWlyZS1jb2xvcihjb2xvcilcbiAgdW5sZXNzIGNvbG9yIGlzIGEgJ2NvbG9yJ1xuICAgIGVycm9yKCdSR0Igb3IgSFNMIHZhbHVlIGV4cGVjdGVkLCBnb3QgYSAnICsgLXN0cmluZyhjb2xvcikpXG5cbi8vIHJlcXVpcmUgYSB1bml0XG5cbnJlcXVpcmUtdW5pdChuKVxuICB1bmxlc3MgbiBpcyBhICd1bml0J1xuICAgIGVycm9yKCd1bml0IGV4cGVjdGVkLCBnb3QgYSAnICsgLXN0cmluZyhuKSlcblxuLy8gcmVxdWlyZSBhIHN0cmluZ1xuXG5yZXF1aXJlLXN0cmluZyhzdHIpXG4gIHVubGVzcyBzdHIgaXMgYSAnc3RyaW5nJyBvciBzdHIgaXMgYSAnaWRlbnQnXG4gICAgZXJyb3IoJ3N0cmluZyBleHBlY3RlZCwgZ290IGEgJyArIC1zdHJpbmcoc3RyKSlcblxuLy8gTWF0aCBmdW5jdGlvbnNcblxuYWJzKG4pIHsgbWF0aChuLCAnYWJzJykgfVxubWluKGEsIGIpIHsgYSA8IGIgPyBhIDogYiB9XG5tYXgoYSwgYikgeyBhID4gYiA/IGEgOiBiIH1cblxuLy8gVHJpZ29ub21ldHJpY3NcblBJID0gLW1hdGgtcHJvcCgnUEknKVxuXG5yYWRpYW5zLXRvLWRlZ3JlZXMoYW5nbGUpXG4gIGFuZ2xlICogKDE4MCAvIFBJKVxuXG5kZWdyZWVzLXRvLXJhZGlhbnMoYW5nbGUpXG4gIGFuZ2xlICogKFBJIC8gMTgwKVxuXG5zaW4obilcbiAgbiA9IHVuaXQobikgPT0gJ2RlZycgPyBkZWdyZWVzLXRvLXJhZGlhbnModW5pdChuLCAnJykpIDogdW5pdChuLCAnJylcbiAgcm91bmQobWF0aChuLCAnc2luJyksIDkpXG5cbmNvcyhuKVxuICBuID0gdW5pdChuKSA9PSAnZGVnJyA/IGRlZ3JlZXMtdG8tcmFkaWFucyh1bml0KG4sICcnKSkgOiB1bml0KG4sICcnKVxuICByb3VuZChtYXRoKG4sICdjb3MnKSwgOSlcblxuLy8gUm91bmRpbmcgTWF0aCBmdW5jdGlvbnNcblxuY2VpbChuLCBwcmVjaXNpb24gPSAwKVxuICBtdWx0aXBsaWVyID0gMTAgKiogcHJlY2lzaW9uXG4gIG1hdGgobiAqIG11bHRpcGxpZXIsICdjZWlsJykgLyBtdWx0aXBsaWVyXG5cbmZsb29yKG4sIHByZWNpc2lvbiA9IDApXG4gIG11bHRpcGxpZXIgPSAxMCAqKiBwcmVjaXNpb25cbiAgbWF0aChuICogbXVsdGlwbGllciwgJ2Zsb29yJykgLyBtdWx0aXBsaWVyXG5cbnJvdW5kKG4sIHByZWNpc2lvbiA9IDApXG4gIG11bHRpcGxpZXIgPSAxMCAqKiBwcmVjaXNpb25cbiAgbWF0aChuICogbXVsdGlwbGllciwgJ3JvdW5kJykgLyBtdWx0aXBsaWVyXG5cbi8vIHJldHVybiB0aGUgc3VtIG9mIHRoZSBnaXZlbiBudW1iZXJzXG5cbnN1bShudW1zKVxuICBzdW0gPSAwXG4gIHN1bSArPSBuIGZvciBuIGluIG51bXNcblxuLy8gcmV0dXJuIHRoZSBhdmVyYWdlIG9mIHRoZSBnaXZlbiBudW1iZXJzXG5cbmF2ZyhudW1zKVxuICBzdW0obnVtcykgLyBsZW5ndGgobnVtcylcblxuLy8gcmV0dXJuIGEgdW5pdGxlc3MgbnVtYmVyLCBvciBwYXNzIHRocm91Z2hcblxucmVtb3ZlLXVuaXQobilcbiAgaWYgdHlwZW9mKG4pIGlzIFwidW5pdFwiXG4gICAgdW5pdChuLCBcIlwiKVxuICBlbHNlXG4gICAgblxuXG4vLyBjb252ZXJ0IGEgcGVyY2VudCB0byBhIGRlY2ltYWwsIG9yIHBhc3MgdGhyb3VnaFxuXG5wZXJjZW50LXRvLWRlY2ltYWwobilcbiAgaWYgdW5pdChuKSBpcyBcIiVcIlxuICAgIHJlbW92ZS11bml0KG4pIC8gMTAwXG4gIGVsc2VcbiAgICBuXG5cbi8vIGNoZWNrIGlmIG4gaXMgYW4gb2RkIG51bWJlclxuXG5vZGQobilcbiAgMSA9PSBuICUgMlxuXG4vLyBjaGVjayBpZiBuIGlzIGFuIGV2ZW4gbnVtYmVyXG5cbmV2ZW4obilcbiAgMCA9PSBuICUgMlxuXG4vLyBjaGVjayBpZiBjb2xvciBpcyBsaWdodFxuXG5saWdodChjb2xvcilcbiAgbGlnaHRuZXNzKGNvbG9yKSA+PSA1MCVcblxuLy8gY2hlY2sgaWYgY29sb3IgaXMgZGFya1xuXG5kYXJrKGNvbG9yKVxuICBsaWdodG5lc3MoY29sb3IpIDwgNTAlXG5cbi8vIGRlc2F0dXJhdGUgY29sb3IgYnkgYW1vdW50XG5cbmRlc2F0dXJhdGUoY29sb3IsIGFtb3VudClcbiAgYWRqdXN0KGNvbG9yLCAnc2F0dXJhdGlvbicsIC0gYW1vdW50KVxuXG4vLyBzYXR1cmF0ZSBjb2xvciBieSBhbW91bnRcblxuc2F0dXJhdGUoY29sb3IgPSAnJywgYW1vdW50ID0gMTAwJSlcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgYWRqdXN0KGNvbG9yLCAnc2F0dXJhdGlvbicsIGFtb3VudClcbiAgZWxzZVxuICAgIHVucXVvdGUoIFwic2F0dXJhdGUoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gZGFya2VuIGJ5IHRoZSBnaXZlbiBhbW91bnRcblxuZGFya2VuKGNvbG9yLCBhbW91bnQpXG4gIGFkanVzdChjb2xvciwgJ2xpZ2h0bmVzcycsIC0gYW1vdW50KVxuXG4vLyBsaWdodGVuIGJ5IHRoZSBnaXZlbiBhbW91bnRcblxubGlnaHRlbihjb2xvciwgYW1vdW50KVxuICBhZGp1c3QoY29sb3IsICdsaWdodG5lc3MnLCBhbW91bnQpXG5cbi8vIGRlY3JlYXNlIG9wYWNpdHkgYnkgYW1vdW50XG5cbmZhZGUtb3V0KGNvbG9yLCBhbW91bnQpXG4gIGNvbG9yIC0gcmdiYShibGFjaywgcGVyY2VudC10by1kZWNpbWFsKGFtb3VudCkpXG5cbi8vIGluY3JlYXNlIG9wYWNpdHkgYnkgYW1vdW50XG5cbmZhZGUtaW4oY29sb3IsIGFtb3VudClcbiAgY29sb3IgKyByZ2JhKGJsYWNrLCBwZXJjZW50LXRvLWRlY2ltYWwoYW1vdW50KSlcblxuLy8gc3BpbiBodWUgYnkgYSBnaXZlbiBhbW91bnRcblxuc3Bpbihjb2xvciwgYW1vdW50KVxuICBjb2xvciArIHVuaXQoYW1vdW50LCBkZWcpXG5cbi8vIG1peCB0d28gY29sb3JzIGJ5IGEgZ2l2ZW4gYW1vdW50XG5cbm1peChjb2xvcjEsIGNvbG9yMiwgd2VpZ2h0ID0gNTAlKVxuICB1bmxlc3Mgd2VpZ2h0IGluIDAuLjEwMFxuICAgIGVycm9yKFwiV2VpZ2h0IG11c3QgYmUgYmV0d2VlbiAwJSBhbmQgMTAwJVwiKVxuXG4gIGlmIGxlbmd0aChjb2xvcjEpID09IDJcbiAgICB3ZWlnaHQgPSBjb2xvcjFbMF1cbiAgICBjb2xvcjEgPSBjb2xvcjFbMV1cblxuICBlbHNlIGlmIGxlbmd0aChjb2xvcjIpID09IDJcbiAgICB3ZWlnaHQgPSAxMDAgLSBjb2xvcjJbMF1cbiAgICBjb2xvcjIgPSBjb2xvcjJbMV1cblxuICByZXF1aXJlLWNvbG9yKGNvbG9yMSlcbiAgcmVxdWlyZS1jb2xvcihjb2xvcjIpXG5cbiAgcCA9IHVuaXQod2VpZ2h0IC8gMTAwLCAnJylcbiAgdyA9IHAgKiAyIC0gMVxuXG4gIGEgPSBhbHBoYShjb2xvcjEpIC0gYWxwaGEoY29sb3IyKVxuXG4gIHcxID0gKCgodyAqIGEgPT0gLTEpID8gdyA6ICh3ICsgYSkgLyAoMSArIHcgKiBhKSkgKyAxKSAvIDJcbiAgdzIgPSAxIC0gdzFcblxuICBjaGFubmVscyA9IChyZWQoY29sb3IxKSByZWQoY29sb3IyKSkgKGdyZWVuKGNvbG9yMSkgZ3JlZW4oY29sb3IyKSkgKGJsdWUoY29sb3IxKSBibHVlKGNvbG9yMikpXG4gIHJnYiA9ICgpXG5cbiAgZm9yIHBhaXIgaW4gY2hhbm5lbHNcbiAgICBwdXNoKHJnYiwgZmxvb3IocGFpclswXSAqIHcxICsgcGFpclsxXSAqIHcyKSlcblxuICBhMSA9IGFscGhhKGNvbG9yMSkgKiBwXG4gIGEyID0gYWxwaGEoY29sb3IyKSAqICgxIC0gcClcbiAgYWxwaGEgPSBhMSArIGEyXG5cbiAgcmdiYShyZ2JbMF0sIHJnYlsxXSwgcmdiWzJdLCBhbHBoYSlcblxuLy8gaW52ZXJ0IGNvbG9ycywgbGVhdmUgYWxwaGEgaW50YWN0XG5cbmludmVydChjb2xvciA9ICcnKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICByZ2JhKCNmZmYgLSBjb2xvciwgYWxwaGEoY29sb3IpKVxuICBlbHNlXG4gICAgdW5xdW90ZSggXCJpbnZlcnQoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gZ2l2ZSBjb21wbGVtZW50IG9mIHRoZSBnaXZlbiBjb2xvclxuXG5jb21wbGVtZW50KCBjb2xvciApXG4gIHNwaW4oIGNvbG9yLCAxODAgKVxuXG4vLyBnaXZlIGdyYXlzY2FsZSBvZiB0aGUgZ2l2ZW4gY29sb3JcblxuZ3JheXNjYWxlKCBjb2xvciA9ICcnIClcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgZGVzYXR1cmF0ZSggY29sb3IsIDEwMCUgKVxuICBlbHNlXG4gICAgdW5xdW90ZSggXCJncmF5c2NhbGUoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gbWl4IHRoZSBnaXZlbiBjb2xvciB3aXRoIHdoaXRlXG5cbnRpbnQoIGNvbG9yLCBwZXJjZW50IClcbiAgbWl4KCB3aGl0ZSwgY29sb3IsIHBlcmNlbnQgKVxuXG4vLyBtaXggdGhlIGdpdmVuIGNvbG9yIHdpdGggYmxhY2tcblxuc2hhZGUoIGNvbG9yLCBwZXJjZW50IClcbiAgbWl4KCBibGFjaywgY29sb3IsIHBlcmNlbnQgKVxuXG4vLyByZXR1cm4gdGhlIGxhc3QgdmFsdWUgaW4gdGhlIGdpdmVuIGV4cHJcblxubGFzdChleHByKVxuICBleHByW2xlbmd0aChleHByKSAtIDFdXG5cbi8vIHJldHVybiBrZXlzIGluIHRoZSBnaXZlbiBwYWlycyBvciBvYmplY3Rcblxua2V5cyhwYWlycylcbiAgcmV0ID0gKClcbiAgaWYgdHlwZShwYWlycykgPT0gJ29iamVjdCdcbiAgICBmb3Iga2V5IGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwga2V5KVxuICBlbHNlXG4gICAgZm9yIHBhaXIgaW4gcGFpcnNcbiAgICAgIHB1c2gocmV0LCBwYWlyWzBdKTtcbiAgcmV0XG5cbi8vIHJldHVybiB2YWx1ZXMgaW4gdGhlIGdpdmVuIHBhaXJzIG9yIG9iamVjdFxuXG52YWx1ZXMocGFpcnMpXG4gIHJldCA9ICgpXG4gIGlmIHR5cGUocGFpcnMpID09ICdvYmplY3QnXG4gICAgZm9yIGtleSwgdmFsIGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwgdmFsKVxuICBlbHNlXG4gICAgZm9yIHBhaXIgaW4gcGFpcnNcbiAgICAgIHB1c2gocmV0LCBwYWlyWzFdKTtcbiAgcmV0XG5cbi8vIGpvaW4gdmFsdWVzIHdpdGggdGhlIGdpdmVuIGRlbGltaXRlclxuXG5qb2luKGRlbGltLCB2YWxzLi4uKVxuICBidWYgPSAnJ1xuICB2YWxzID0gdmFsc1swXSBpZiBsZW5ndGgodmFscykgPT0gMVxuICBmb3IgdmFsLCBpIGluIHZhbHNcbiAgICBidWYgKz0gaSA/IGRlbGltICsgdmFsIDogdmFsXG5cbi8vIGFkZCBhIENTUyBydWxlIHRvIHRoZSBjb250YWluaW5nIGJsb2NrXG5cbi8vIC0gVGhpcyBkZWZpbml0aW9uIGFsbG93cyBhZGQtcHJvcGVydHkgdG8gYmUgdXNlZCBhcyBhIG1peGluXG4vLyAtIEl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgaW50ZXJwb2xhdGlvbiBidXQgYWxsb3dzIHVzZXJzXG4vLyAgIHRvIG9wdCBmb3IgYSBmdW5jdGlvbmFsIHN0eWxlXG5cbmFkZC1wcm9wZXJ0eS1mdW5jdGlvbiA9IGFkZC1wcm9wZXJ0eVxuYWRkLXByb3BlcnR5KG5hbWUsIGV4cHIpXG4gIGlmIG1peGluXG4gICAge25hbWV9IGV4cHJcbiAgZWxzZVxuICAgIGFkZC1wcm9wZXJ0eS1mdW5jdGlvbihuYW1lLCBleHByKVxuXG5wcmVmaXgtY2xhc3NlcyhwcmVmaXgpXG4gIC1wcmVmaXgtY2xhc3NlcyhwcmVmaXgsIGJsb2NrKVxuXG4vLyBDYWNoaW5nIG1peGluLCB1c2UgaW5zaWRlIHlvdXIgZnVuY3Rpb25zIHRvIGVuYWJsZSBjYWNoaW5nIGJ5IGV4dGVuZGluZy5cblxuJHN0eWx1c19taXhpbl9jYWNoZSA9IHt9XG5jYWNoZSgpXG4gICRrZXkgPSAoY3VycmVudC1tZWRpYSgpIG9yICduby1tZWRpYScpICsgJ19fJyArIGNhbGxlZC1mcm9tWzBdICsgJ19fJyArIGFyZ3VtZW50c1xuICBpZiAka2V5IGluICRzdHlsdXNfbWl4aW5fY2FjaGVcbiAgICBAZXh0ZW5kIHtcIiRjYWNoZV9wbGFjZWhvbGRlcl9mb3JfXCIgKyAkc3R5bHVzX21peGluX2NhY2hlWyRrZXldfVxuICBlbHNlIGlmICdjYWNoZScgaW4gY2FsbGVkLWZyb21cbiAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICAkaWQgPSBsZW5ndGgoJHN0eWx1c19taXhpbl9jYWNoZSlcblxuICAgICYsXG4gICAgLyRjYWNoZV9wbGFjZWhvbGRlcl9mb3JfeyRpZH1cbiAgICAgICRzdHlsdXNfbWl4aW5fY2FjaGVbJGtleV0gPSAkaWRcbiAgICAgIHtibG9ja31cblxuLy8gUGVyY2VudGFnZSBmdW5jdGlvbiB0byBjb252ZXJ0IGEgbnVtYmVyLCBlLmcuIFwiLjQ1XCIsIGludG8gYSBwZXJjZW50YWdlLCBlLmcuIFwiNDUlXCJcblxucGVyY2VudGFnZShudW0pXG4gIHJldHVybiB1bml0KG51bSAqIDEwMCwgJyUnKVxuXG4vLyBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiBhIGB2YWx1ZWAgd2l0aGluIGEgYGxpc3RgXG5cbmluZGV4KGxpc3QsIHZhbHVlKVxuICBmb3IgdmFsLCBpIGluIGxpc3RcbiAgICByZXR1cm4gaSBpZiB2YWwgPT0gdmFsdWVcbiIsIitwcmVmaXgtY2xhc3Nlcyhwcm9qKVxuICAuX19oZWFkZXJcbiAgLl9fY29weVxuICAgIHdpZHRoIDk0JVxuXG4gIC5fX2hlYWRlclxuICAgIG1hcmdpbi1ib3R0b20gMC4yNWVtXG4gICAgbWFyZ2luLWxlZnQgYXV0b1xuICAgIG1hcmdpbi1yaWdodCBhdXRvXG5cbiAgLl9fY29weVxuICAgIG1hcmdpbiAoMTAwIC8gMjEpZW0gYXV0b1xuICAgIHdpZHRoICg3NzUgLyAyMSllbVxuICAgIG1heC13aWR0aCAxMDAlXG5cbiAgICB0ZXh0LWFsaWduIGxlZnRcblxuICAgIC5fX2hlYWRlciArICZcbiAgICAgbWFyZ2luLXRvcCAxZW1cblxuICAuX19maWdcbiAgICBtYXJnaW4gKDEwMCAvICRiYXNlLWZvbnQtc2l6ZSllbSBhdXRvXG5cbiAgICB3aWR0aCA5MiVcbiAgICBtYXgtd2lkdGggMTA1MnB4XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgd2lkdGggMTAwJVxuICAgICAgbWFyZ2luICg1MCAvICRiYXNlLWZvbnQtc2l6ZSllbSBhdXRvXG5cbiAgICAmLS1mdWxsXG4gICAgICB3aWR0aCAxMDAlXG4gICAgICBtYXgtd2lkdGggMTYwMHB4XG5cbiAgICAmLS1mb3JjZS1mdWxsXG4gICAgICBtYXgtd2lkdGggbm9uZVxuXG4gIC5fX2ltZ1xuICAgIGRpc3BsYXkgYmxvY2tcblxuICAgIG1hcmdpbiAwIGF1dG9cblxuICAgIHdpZHRoIDEwMCVcbiAgICBoZWlnaHQgYXV0b1xuXG4gICAgJi0tdHdvLXVwXG4gICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgd2lkdGggcGVyY2VudGFnZSg3NTUgLyAxNjAwKVxuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuICAgICAgJjpmaXJzdC1jaGlsZFxuICAgICAgICBtYXJnaW4tcmlnaHQgcGVyY2VudGFnZSg5MCAvIDE2MDApXG5cbiAgLl9fZ2xscnlcbiAgICBidXR0b25cbiAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgdGV4dC1zaGFkb3cgMCAwIDJlbSBhbHBoYSgkYmxhY2ssIDc1JSlcblxuICAuX19pZnJhbWVcbiAgICBwb3NpdGlvbiByZWxhdGl2ZVxuXG4gICAgbWFyZ2luICgxMDAgLyAkYmFzZS1mb250LXNpemUpZW0gYXV0b1xuXG4gICAgd2lkdGggOTIlXG4gICAgbWF4LXdpZHRoIDEwNTJweFxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIHdpZHRoIDEwMCVcbiAgICAgIG1hcmdpbiAoNTAgLyAkYmFzZS1mb250LXNpemUpZW0gYXV0b1xuXG4gICAgJi0tZnVsbFxuICAgICAgd2lkdGggMTAwJVxuICAgICAgbWF4LXdpZHRoIDE2MDBweFxuXG4gIC5fX2VtYmVkXG4gICAgJltkYXRhLXNvdXJjZSo9XCJ5b3V0dWJlXCJdXG4gICAgJltkYXRhLXNvdXJjZSo9XCJ2aW1lb1wiXVxuICAgICZbZGF0YS1zb3VyY2UqPVwia2lja3N0YXJ0ZXJcIl1cbiAgICAgIHBhZGRpbmctYm90dG9tIDU2LjI1JVxuICAgICAgaGVpZ2h0IDBcbiAgICAgIG92ZXJmbG93IGhpZGRlblxuICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgIGhlaWdodCBhdXRvXG5cbiAgICAgIGlmcmFtZVxuICAgICAgb2JqZWN0XG4gICAgICBlbWJlZFxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgMFxuICAgICAgICBsZWZ0IDBcbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuXG4gICAgJltkYXRhLXNvdXJjZSo9XCJpbnN0YWdyYW1cIl1cbiAgICAmW2RhdGEtc291cmNlKj1cInR1bWJsclwiXVxuICAgICZbZGF0YS1zb3VyY2UqPVwidHdpdHRlclwiXVxuICAgICZbZGF0YS1zb3VyY2UqPVwiZmxpY2tyXCJdXG4gICAgJltkYXRhLXNvdXJjZSo9XCJtZWV0dXBcIl1cbiAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICBoZWlnaHQgYXV0b1xuXG4gICAgICBpZnJhbWVcbiAgICAgIG9iamVjdFxuICAgICAgZW1iZWRcbiAgICAgICAgbWFyZ2luIDAgYXV0byAhaW1wb3J0YW50XG5cbiAgICAmW2RhdGEtc291cmNlKj1cInR3aXR0ZXJcIl0gW2lkKj1cInR3aXR0ZXItd2lkZ2V0XCJdXG4gICAgICBtYXJnaW4tbGVmdCBhdXRvXG4gICAgICBtYXJnaW4tcmlnaHQgYXV0b1xuXG4gICAgJltkYXRhLXNvdXJjZSo9XCJkYWlseW1vdGlvblwiXVxuICAgICZbZGF0YS1zb3VyY2UqPVwic291bmRjbG91ZFwiXVxuICAgICAgcGFkZGluZy1ib3R0b20gNTclXG4gICAgICBoZWlnaHQgMFxuICAgICAgb3ZlcmZsb3cgaGlkZGVuXG4gICAgICBtYXgtd2lkdGggMTAwJVxuICAgICAgaGVpZ2h0IGF1dG9cblxuICAgICAgaWZyYW1lXG4gICAgICBvYmplY3RcbiAgICAgIGVtYmVkXG4gICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgIHRvcCAwXG4gICAgICAgIGxlZnQgMFxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGhlaWdodCAxMDAlXG5cbiAgLl9fZm9vdFxuICAgIG1hcmdpbi10b3AgKDIyMCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIG1hcmdpbi10b3AgKDE0MCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIG1hcmdpbi10b3AgKDgwIC8gJGJhc2UtZm9udC1zaXplKWVtXG5cbiAgICAmX19uYW1lXG4gICAgICBkaXNwbGF5IGJsb2NrXG5cbiAgICAgIG1hcmdpbi10b3AgKDggLyAyNyllbVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgICBkaXNwbGF5IG5vbmVcblxuICAgICZfX2hlYWRlclxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgICAgZm9udC1zcGVjcygyMClcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgZm9udC1zcGVjcygxNClcblxuICAuX19wcmV2XG4gIC5fX25leHRcbiAgICBAZXh0ZW5kIC5nb3RoaWNcblxuICAgIGRpc3BsYXkgYmxvY2tcbiAgICBwb3NpdGlvbiByZWxhdGl2ZVxuXG4gICAgY29sb3IgJHdoaXRlXG4gICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcblxuICAgIGZvbnQtc3BlY3MoMjcsIGF1dG8pXG5cbiAgICBwYWRkaW5nICgxLjUgKiAxLjI1KWVtIDFlbSAoMS4zICogMS4yNSllbVxuXG4gICAgb3BhY2l0eSAwLjhcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXQpXG4gICAgICBmb250LXNwZWNzKDIyKVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIGZvbnQtc3BlY3MoMTgpXG5cbiAgICAmOmFmdGVyXG4gICAgICBjb250ZW50ICdcXEU4MDMnXG5cbiAgICAgIHZlcnQtY2VudGVyKClcblxuICAgICAgZm9udC1mYW1pbHkgJ25mLWZvbnRlbGxvJ1xuICAgICAgZm9udC1zaXplIDJlbVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgICBmb250LXNpemUgMS41ZW1cblxuICAgICY6aG92ZXJcbiAgICAgIGNvbG9yICR3aGl0ZVxuXG4gICAgICBvcGFjaXR5IDFcblxuICAgICYtLWhhbGZcbiAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cbiAgICAgIHdpZHRoIDUwJVxuXG4gICAgICBib3gtc2l6aW5nIGJvcmRlci1ib3hcblxuICAuX19wcmV2XG4gICAgJjphZnRlclxuICAgICAgY29udGVudCAnXFxFODAxJ1xuXG4gICAgICBsZWZ0IDYlXG5cbiAgLl9fbmV4dFxuICAgICY6YWZ0ZXJcbiAgICAgIGNvbnRlbnQgJ1xcRTgwMidcblxuICAgICAgcmlnaHQgNiVcbiIsIitwcmVmaXgtY2xhc3NlcyhuZXdzKVxuICAuX19hcnRjbFxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgXG4gICAgJi0tcmVjZW50XG4gICAgICBtYXJnaW4gMCAoMjg3IC8gMTYgLyAyKSVcbiAgICAgIHdpZHRoICg0NjggLyAxNiklXG4gICAgICBcbiAgICAgIG1heC13aWR0aCA0NjhweFxuICAgICAgXG4gICAgICAmOm50aC1jaGlsZChvZGQpXG4gICAgICAgIG1hcmdpbi10b3AgLTI4ZW1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICAgIG1hcmdpbi10b3AgMFxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBtYXJnaW4gMCBhdXRvXG4gIFxuICAuX19maWdcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgXG4gICAgbWF4LXdpZHRoICgxMDY4ICsgMzAwKXB4XG4gICAgd2lkdGggOTIlXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIHdpZHRoIDEwMCVcbiAgXG4gIC5fX2ltZ1xuICAgIGRpc3BsYXkgYmxvY2tcbiAgICBcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgXG4gICAgd2lkdGggcGVyY2VudGFnZSgxMDY4IC8gKDEwNjggKyAzMDApKVxuICAgIGhlaWdodCBhdXRvXG4gIFxuICAuX19wcmV2XG4gIC5fX25leHRcbiAgICB3aWR0aCBwZXJjZW50YWdlKDE1MCAvICgxMDY4ICsgMzAwKSlcbiAgXG4gIC5fX3RpdGxlXG4gICAgQGV4dGVuZCAuZ290aGljXG4gICAgZm9udC1zcGVjcyg1MiwgNjcpXG4gICAgXG4gICAgbWFyZ2luIDAuNzVlbSBhdXRvIDAuNWVtXG4gICAgcGFkZGluZyAwIDEwcHhcbiAgICBcbiAgICBtYXgtd2lkdGggKDEwMDAgLyA1MillbVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRsYXB0b3ApXG4gICAgICBmb250LXNwZWNzKDQ4KVxuICAgICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldFdpZGUpXG4gICAgICBmb250LXNwZWNzKDQyKVxuICAgICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIGZvbnQtc3BlY3MoMzApXG4gICAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgZm9udC1zcGVjcygyMClcbiAgICBcbiAgICAmLS1yZWNlbnRcbiAgICAgIG1hcmdpbiAwLjI1ZW0gYXV0byAwXG4gICAgICBmb250LXNwZWNzKDM4LCA2MCwgMTI1KVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgZm9udC1zcGVjcygzMilcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgICAgbWFyZ2luIDAuMjVlbSAxMHB4IDBcbiAgICAgICAgZm9udC1zcGVjcygyNilcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgZm9udC1zcGVjcygyMClcbiAgICBcbiAgLl9fZGF0ZVxuICAgIGRpc3BsYXkgYmxvY2tcbiAgICBcbiAgICBtYXJnaW4gMC4yNWVtIGF1dG9cbiAgICBcbiAgICBmb250LXNwZWNzKDI2LCBhdXRvLCAxMDApXG4gICAgZm9udC13ZWlnaHQgYm9sZFxuICBcbiAgLl9fY29weVxuICAgIG1hcmdpbi1ib3R0b20gKDE0MCAvIDIxKWVtXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIG1hcmdpbiAxZW0gMTBweCAoODAgLyAyMSllbVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRtb2JpbGUpXG4gICAgICBtYXJnaW4gMWVtIDEwcHggKDYwIC8gMjEpZW1cbiAgXG4gIC5fX2Zvb3RcbiAgICBkaXNwbGF5IGlubGluZS1mbGV4XG4gICAgXG4gICAgZmxleC13cmFwIHdyYXBcbiAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICBqdXN0aWZ5LWNvbnRlbnQgc3BhY2UtYmV0d2VlblxuICAgIFxuICAgIG1heC13aWR0aCAoNDY4ICogMiArIDI4NyAqIDIpcHhcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICBcbiAgICAmID4gaGVhZGVyXG4gICAgICB3aWR0aCBhdXRvXG4gICAgICB3aWR0aCAxMDAlXG5cbiAgICAgIG1hcmdpbi1yaWdodCAwXG4gICAgICBcbiAgICAgIGFsaWduLXNlbGYgZmxleC1zdGFydFxuXG4gICAgaDNcbiAgICAgIG1hcmdpbi10b3AgMFxuICAgICAgbWFyZ2luLWxlZnQgKDI4NyAvIDE2IC8gMiklXG4gICAgICBcbiAgICAgIHRleHQtYWxpZ24gbGVmdFxuICAgICAgXG4gICAgICBtYXgtd2lkdGggKDUwIC0gMjg3IC8gMTYgLyAyKSVcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgbWF4LXdpZHRoIDgwJVxuXG4gIC5fX3RodW1iXG4gICAgZGlzcGxheSBibG9ja1xuICAgIFxuICAgIG1hcmdpbiAwIGF1dG8gMS41ZW1cbiAgICBcbiAgICB3aWR0aCAxMDAlXG4gICAgaGVpZ2h0IGF1dG9cbiAgXG4gIC5fX2xvYWQtbW9yZVxuICAgIGJ1dHRvbi1yZXNldCgpXG4gICAgXG4gICAgZm9udC1zcGVjcygzOClcbiAgICBcbiAgICAmOmhvdmVyXG4gICAgICBvcGFjaXR5IDAuOFxuIiwiK3ByZWZpeC1jbGFzc2VzKGFib3V0KVxuICAuX19jb250ZW50XG4gICAgZGlzcGxheSBibG9ja1xuICAgIG1hcmdpbiAwIGF1dG9cbiAgICBcbiAgICBtYXgtd2lkdGggMTQ0MHB4XG4gICAgXG4gICAgaDFcbiAgICBoMlxuICAgICAgbWFyZ2luLWJvdHRvbSAwXG4gICAgXG4gICAgJi0tZmxleFxuICAgICAgZGlzcGxheSBmbGV4XG4gICAgICBmbGV4LXdyYXAgd3JhcFxuICAgICAgXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQgc3BhY2UtYmV0d2VlblxuICAgICAgXG4gIC5fX2FyZWFcbiAgICB0ZXh0LWFsaWduIGxlZnRcbiAgICBcbiAgICAmLWltZ1xuICAgICAgaW1nLXJlc3BvbnNpdmUoKVxuICBcbiAgLl9fd2UtYXJlXG4gIC5fX3N0dWRpb1xuICAgIG1heC13aWR0aCA3MjBweFxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRsYXB0b3ApXG4gICAgICBtYXJnaW4tbGVmdCBhdXRvXG4gICAgICBtYXJnaW4tcmlnaHQgYXV0b1xuICAgIFxuICAgIGltZ1xuICAgICAgbWFyZ2luLXRvcCAoNTAgLyAkYmFzZS1mb250LXNpemUpZW1cbiAgICAgIG1hcmdpbi1ib3R0b20gKDkwIC8gJGJhc2UtZm9udC1zaXplKWVtXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICBtYXJnaW4tdG9wICg0MCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuICAgICAgICBtYXJnaW4tYm90dG9tICg3MCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgICBtYXJnaW4tdG9wICgzMCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuICAgICAgICBtYXJnaW4tYm90dG9tICg1MCAvICRiYXNlLWZvbnQtc2l6ZSllbVxuICBcbiAgLl9fd2UtYXJlXG4gICAgd2lkdGggcGVyY2VudGFnZSg3MjAgLyAxNDQwKVxuICAgIFxuICAgIG9yZGVyIDJcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbGFwdG9wKVxuICAgICAgd2lkdGggMTAwJVxuICAgICAgXG4gICAgICBvcmRlciAxXG4gICAgXG4gICAgaDFcbiAgICAgIG1hcmdpbi10b3AgMFxuICAgIFxuICAuX19zdHVkaW9cbiAgICB3aWR0aCBwZXJjZW50YWdlKDUzNiAvIDE0NDApXG4gICAgbWFyZ2luLXJpZ2h0IHBlcmNlbnRhZ2UoNTAgLyAxNDQwKVxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICRsYXB0b3ApXG4gICAgICBtYXJnaW4tcmlnaHQgYXV0b1xuICAgICAgd2lkdGggMTAwJVxuICAgICAgXG4gICAgICBvcmRlciAyXG4gICAgXG4gICAgQG1lZGlhIChtaW4td2lkdGggJGxhcHRvcCArIDEpXG4gICAgICBoMlxuICAgICAgICBtYXJnaW4tdG9wIDBcbiAgXG4gIC5fX2NsaWVudHNcbiAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgIFxuICAgIHdpZHRoIDEwMCVcbiAgICBcbiAgICBtYXJnaW4gMTAlIGF1dG9cbiAgICBcbiAgICBvcmRlciAzXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIG1hcmdpbiAwIGF1dG8gOCVcbiAgICBcbiAgICBoZWFkZXJcbiAgICAgIHBhZGRpbmcgMjAlIDBcbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgcGFkZGluZyAwXG4gIFxuICAuX19sb2dvc1xuICAgIG1hcmdpbiAwXG4gICAgcGFkZGluZyAwXG4gICAgXG4gICAgYWJzb2x1dGUtY2VudGVyKClcbiAgICBcbiAgICB3aWR0aCAxMDAlXG4gICAgaGVpZ2h0IDEwMCVcbiAgICBcbiAgICBwZXJzcGVjdGl2ZSAyNTBweFxuICAgIFxuICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgd2lkdGggOTUlXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICB0cmFuc2Zvcm0gbm9uZSAhaW1wb3J0YW50XG4gICAgICBcbiAgICAgIHdpZHRoIDEwMCVcbiAgICAgIGxlZnQgMFxuICAgIFxuICAuX19sb2dvXG4gICAgd2lkdGggMTYlXG4gICAgaGVpZ2h0IGF1dG9cbiAgICBcbiAgICB6LWluZGV4IDVcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgd2lkdGggKDcwIC8gMyklXG4gICAgICBcbiAgICAgIG1hcmdpbiAxZW0gNSVcbiAgICAgIFxuICAgICAgdmVydGljYWwtYWxpZ24gbWlkZGxlXG4gICAgXG4gICAgZm9yIGkgaW4gMS4uOVxuICAgICAgJjpudGgtY2hpbGQoe2l9KVxuICAgICAgICBhYnNvbHV0ZS1jZW50ZXIoKVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgICAgICBwb3NpdGlvbiBzdGF0aWNcbiAgICAgICAgICB0cmFuc2Zvcm0gbm9uZVxuICAgIFxuICAgIC8vIGluIHJlcGVhdGVyIG9iamVjdCBvcmRlclxuICAgIFxuICAgICY6bnRoLWNoaWxkKDcpXG4gICAgICB0b3AgNSVcbiAgICAgIGxlZnQgMTUlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoMylcbiAgICAgIHRvcCAyMiVcbiAgICAgIGxlZnQgMzIlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoNSlcbiAgICAgIHRvcCAxNSVcbiAgICAgIGxlZnQgNTclXG4gICAgXG4gICAgJjpudGgtY2hpbGQoMSlcbiAgICAgIHRvcCAyOCVcbiAgICAgIGxlZnQgODUlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoOSlcbiAgICAgIHRvcCA1NSVcbiAgICAgIGxlZnQgOTAlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoNClcbiAgICAgIHRvcCA3NSVcbiAgICAgIGxlZnQgNzUlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoNilcbiAgICAgIHRvcCA5MCVcbiAgICAgIGxlZnQgNDYlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoMilcbiAgICAgIHRvcCA3NSVcbiAgICAgIGxlZnQgMjUlXG4gICAgXG4gICAgJjpudGgtY2hpbGQoOClcbiAgICAgIGxlZnQgNSVcbiAgICAgICAgXG4gIC5fX3Byb21vXG4gICAgZGlzcGxheSBibG9ja1xuICAgIG1hcmdpbiAxMGVtIGF1dG8gMjBlbVxuICAgIFxuICAgIHdpZHRoIDEwMCVcbiAgICBtYXgtd2lkdGggMTIyMnB4XG4gICAgXG4gICAgb3JkZXIgNFxuICAgIFxuICAgIGRpc3BsYXkgZmxleFxuICAgIFxuICAgIGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG4gICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJGxhcHRvcClcbiAgICAgIG1hcmdpbiA5ZW0gYXV0byAxOGVtXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldFdpZGUpXG4gICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICBcbiAgICAgIG1hcmdpbiA4ZW0gYXV0byAxNWVtXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJHRhYmxldClcbiAgICAgIG1hcmdpbiA2ZW0gYXV0byAxMmVtXG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGggJG1vYmlsZSlcbiAgICAgIG1hcmdpbiA0ZW0gYXV0byA4ZW1cbiAgICBcbiAgICBoNFxuICAgICAgQG1lZGlhIChtaW4td2lkdGggJHRhYmxldFdpZGUgKyAxKVxuICAgICAgICBtYXJnaW4gMFxuICAgIFxuICAgICYtaW1nXG4gICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICBcbiAgICAgIHdpZHRoIHBlcmNlbnRhZ2UoNjMyIC8gMTIyMilcbiAgICAgIG1hcmdpbi1yaWdodCBwZXJjZW50YWdlKDUwIC8gMTIyMilcbiAgICAgIFxuICAgICAgbWF4LXdpZHRoIDYzMnB4XG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIFxuICAgICAgICBtYXJnaW4tbGVmdCBhdXRvXG4gICAgICAgIG1hcmdpbi1yaWdodCBhdXRvXG4gICAgXG4gICAgJi10eHRcbiAgICAgIHdpZHRoIHBlcmNlbnRhZ2UoNDcwIC8gMTIyMilcbiAgICAgIG1heC13aWR0aCA0NzBweFxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0V2lkZSlcbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBcbiAgICAgICAgbWFyZ2luLWxlZnQgYXV0b1xuICAgICAgICBtYXJnaW4tcmlnaHQgYXV0b1xuICAgIFxuICAuX19uZXdzXG4gICAgQGV4dGVuZCAubmV3c19fZm9vdFxuICBcbiAgLl9fcHJlc3NcbiAgICBtYXgtd2lkdGggMTIyMnB4XG4gICAgXG4gICAgaDImLWhlYWRlclxuICAgICAgbWFyZ2luLWJvdHRvbSAwLjVlbVxuICAgICAgXG4gICAgJi1pdGVtXG4gICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgXG4gICAgICB3aWR0aCBwZXJjZW50YWdlKDUzOCAvIDEyMjIpXG4gICAgICBtYXgtd2lkdGggNTM4cHhcbiAgICAgIG1hcmdpbi1yaWdodCBwZXJjZW50YWdlKDUwIC8gMTIyMilcbiAgICAgIFxuICAgICAgdmVydGljYWwtYWxpZ24gdG9wXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIG1hcmdpbi1yaWdodCAwXG4gICAgXG4gICAgJi10aXRsZVxuICAgICAgQGV4dGVuZCAuZ290aGljXG4gICAgICBmb250LXNwZWNzKDM4KVxuICAgICAgXG4gICAgICBtYXJnaW4gKDI1IC8gMzgpZW0gMCAwXG4gICAgICBcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoICR0YWJsZXRXaWRlKVxuICAgICAgICBmb250LXNwZWNzKDMyKVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkdGFibGV0KVxuICAgICAgICBmb250LXNwZWNzKDI2KVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aCAkbW9iaWxlKVxuICAgICAgICBmb250LXNwZWNzKDIwKVxuICAgICAgXG4gICAgICBhXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbiBub25lXG4gICAgICAgIGNvbG9yICRibGFja1xuICAgIFxuICAgICYtdHh0XG4gICAgICBtYXJnaW4gMWVtIDAgKDI1IC8gMjEpZW1cbiAgXG4gIC5fX2J0bS1pbWdcbiAgICBtYXJnaW4gOCUgYXV0byAwXG4gICAgXG4gICAgaW1nXG4gICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICBcbiAgICAgIHdpZHRoIDEwMCVcbiAgICAgIGhlaWdodCBhdXRvXG5cbi5hYm91dF9fd2UtYXJlXG4uYWJvdXRfX3N0dWRpb1xuICAuYm9keS1jb3B5XG4gICAgbWFyZ2luLWxlZnQgMFxuICAgIG1heC13aWR0aCA1MzZweFxuICAgICIsImltZy1yZXNwb25zaXZlKClcbiAgZGlzcGxheSBibG9ja1xuXG4gIGhlaWdodCAgICBhdXRvXG4gIG1heC13aWR0aCAxMDAlXG4gIHdpZHRoICAgICBhdXRvXG5cbiRpbWctcmVzcG9uc2l2ZVxuICBpbWctcmVzcG9uc2l2ZSgpXG5cbnRocmVlLXVwLWdyaWQtaXRlbSgpXG4gIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gIHdpZHRoICgxMDAgLyAzKSVcblxuICBAbWVkaWEgKG1heC13aWR0aCAoJGdyaWQtc25hcC1vbmUpKVxuICAgIHdpZHRoIDUwJVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICgkZ3JpZC1zbmFwLXR3bykpXG4gICAgd2lkdGggMTAwJVxuXG50d28tdGhpcmRzLWdyaWQtaXRlbSgpXG4gIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gIHdpZHRoICgxMDAgLyAzICogMiklXG5cbiAgQG1lZGlhIChtYXgtd2lkdGggKCRncmlkLXNuYXAtb25lKSlcbiAgICB3aWR0aCAxMDAlXG5cbnR3by11cC1ncmlkLWl0ZW0oKVxuICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICB3aWR0aCA1MCVcblxuICBAbWVkaWEgKG1heC13aWR0aCAoJGdyaWQtc25hcC10d28pKVxuICAgIHdpZHRoIDEwMCVcblxuZm91ci11cC1ncmlkLWl0ZW0oKVxuICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICB3aWR0aCAyNSVcblxuICBAbWVkaWEgKG1heC13aWR0aCAoJGdyaWQtc25hcC1vbmUpKVxuICAgIHdpZHRoIDUwJVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoICgkZ3JpZC1zbmFwLXR3bykpXG4gICAgd2lkdGggMTAwJVxuXG5wcm9wb3J0aW9uKCRzdGF0aWNWYWx1ZSA9IDgwMCwgJHN0YXRpY1ZhbHVlVW5pdCA9IHZ3KVxuICByZXR1cm4gdW5pdCgoJHN0YXRpY1ZhbHVlIC8gJGdyaWQpICogMTAwLCAkc3RhdGljVmFsdWVVbml0KVxuIiwiQGltcG9ydCBcIm5pYlwiXG5AaW1wb3J0IFwic29wLXN0eWxcIlxuXG5AaW1wb3J0IFwiY29yZVwiXG5cbkBpbXBvcnQgXCJwb3N0XCJcbkBpbXBvcnQgXCJwb3N0L2ZpbHRlclwiXG5AaW1wb3J0IFwicHJvamVjdFwiXG5AaW1wb3J0IFwibmV3c1wiXG5AaW1wb3J0IFwiYWJvdXRcIlxuQGltcG9ydCBcImNvbnRhY3RcIlxuXG4ubGF6eS1oaWRkZW5cbltuZy1jbG9ha11cbiAgZGlzcGxheSBub25lXG4iXX0= */
