diff --git a/assets/js/libs/bindevents.js b/assets/js/libs/bindevents.js index 1379003..0d75336 100644 --- a/assets/js/libs/bindevents.js +++ b/assets/js/libs/bindevents.js @@ -97,6 +97,7 @@ module.exports = (function() { $("#molecule-details table .detailed").fadeOut('fast'); if (modernizr.localstorage) { localStorage.setItem("moleculeLayout", "simple"); + localStorage.setItem("moleculeLayout", "simple"); } util.bootstrapFeedback("Switched to simple view", "feedback", "fa-desktop"); @@ -186,8 +187,7 @@ module.exports = (function() { $(this).addClass('disabled btn-success'); $(this).removeClass('btn-danger'); $(this).html('Surface Removed'); - util.bootstrapFeedback("Surface removed. Reload to add surface", - "feedback", "fa-desktop"); + //"feedback", "fa-desktop"); }); } }; @@ -224,14 +224,15 @@ module.exports = (function() { */ bindevents.onScollLoadMolecules = function() { //TODO: was assigned var waypoints - $('.pagination, footer').waypoint({ + new Waypoint({ + element: document.getElementsByClassName('pagination')[0], handler: function() { if(molecule.requestToLoad()){ molecule.ajaxSearch(); } molecule.showResults(10); }, - offset: 'bottom-in-view' + offset: 'bottom-in-view' }); }; diff --git a/assets/js/libs/molecule.js b/assets/js/libs/molecule.js index 863e123..47a0b2f 100644 --- a/assets/js/libs/molecule.js +++ b/assets/js/libs/molecule.js @@ -102,7 +102,8 @@ module.exports = (function() { $('#grid').append(value); masonary.animateOnScroll(); //Allow the new items to be animated //Add the event to the new items - bindevents.resultTouchHelper(); }); + //bindevents.resultTouchHelper(); + }); } }; diff --git a/package.json b/package.json index f3b6a7b..4c04eaf 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,7 @@ "main": "gulpfile.js", "dependencies": { "bootstrap": "^3.3.6", - "bootstrap-notify": "^3.1.3", - "browsernizr": "^2.1.0", - "desandro-classie": "^1.0.1", - "handlebars": "^4.0.5", - "imagesloaded": "^4.1.0", - "jquery": "^2.2.0", - "typeahead": "^0.2.1", - "waypoints": "^4.0.0" + "browsernizr": "^2.1.0" }, "devDependencies": { "babel-preset-es2015": "^6.5.0", diff --git a/pqr/static/js/pqr.min.js b/pqr/static/js/pqr.min.js index 22f29e5..35e540b 100644 --- a/pqr/static/js/pqr.min.js +++ b/pqr/static/js/pqr.min.js @@ -421,6 +421,7 @@ module.exports = function () { $("#molecule-details table .detailed").fadeOut('fast'); if (modernizr.localstorage) { localStorage.setItem("moleculeLayout", "simple"); + localStorage.setItem("moleculeLayout", "simple"); } util.bootstrapFeedback("Switched to simple view", "feedback", "fa-desktop"); }); @@ -504,7 +505,7 @@ module.exports = function () { $(this).addClass('disabled btn-success'); $(this).removeClass('btn-danger'); $(this).html('Surface Removed'); - util.bootstrapFeedback("Surface removed. Reload to add surface", "feedback", "fa-desktop"); + //"feedback", "fa-desktop"); }); } }; @@ -540,7 +541,8 @@ module.exports = function () { */ bindevents.onScollLoadMolecules = function () { //TODO: was assigned var waypoints - $('.pagination, footer').waypoint({ + new Waypoint({ + element: document.getElementsByClassName('pagination')[0], handler: function handler() { if (molecule.requestToLoad()) { molecule.ajaxSearch(); @@ -855,7 +857,7 @@ module.exports = function () { $('#grid').append(value); masonary.animateOnScroll(); //Allow the new items to be animated //Add the event to the new items - bindevents.resultTouchHelper(); + //bindevents.resultTouchHelper(); }); } }; diff --git a/pqr/static/style/pqr.min.css b/pqr/static/style/pqr.min.css index 4b2561f..2617cde 100644 --- a/pqr/static/style/pqr.min.css +++ b/pqr/static/style/pqr.min.css @@ -1,2 +1,2 @@ -.grid{list-style:none;margin:30px auto;padding:0}.grid li{width:100%;position:relative;min-height:1px;padding:15px;display:block;float:left;opacity:0}@media (min-width:768px){.grid li{float:left;width:50%}}@media (min-width:992px){.grid li{float:left;width:33.33333333%}}@media (min-width:1200px){.grid li{float:left;width:25%}}.grid li.shown,.grid li:hover .more-info{opacity:1}.grid li a{outline:none;border:none;display:block;max-width:100%}.grid li a:hover{text-decoration:none}.grid li img{display:block;margin-left:auto;margin-right:auto;height:200px;width:200px}.grid li h4{color:#000}.grid li .more-info{-webkit-transition:all .2s cubic-bezier(.17,.67,.83,.67);-o-transition:all .2s cubic-bezier(.17,.67,.83,.67);transition:all .2s cubic-bezier(.17,.67,.83,.67);background-color:#f16b1d;opacity:0;color:#fff;position:absolute;overflow:hidden;top:0;z-index:3;margin:auto;height:100%;width:95%;padding:5%}@media (min-width:768px){.grid li .more-info{width:95%}}@media (min-width:992px){.grid li .more-info{width:100%}}@media (min-width:1200px){.grid li .more-info{width:100%}}.grid li .more-info h3,.grid li .more-info h4{color:#fff;margin-top:0}.no-cssanimations .grid li,.no-js .grid li{opacity:1}.grid.effect-1 li.animate{-webkit-animation:a .65s ease forwards;-o-animation:a .65s ease forwards;animation:a .65s ease forwards}@-webkit-keyframes a{to{opacity:1}}@-o-keyframes a{to{opacity:1}}@keyframes a{to{opacity:1}}.grid.effect-2 li.animate{-webkit-transform:translateY(200px);-o-transform:translateY(200px);transform:translateY(200px);-webkit-animation:b .65s ease forwards;-o-animation:b .65s ease forwards;animation:b .65s ease forwards}@-webkit-keyframes b{to{-webkit-transform:translateY(0);opacity:1}}@-o-keyframes b{to{-webkit-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes b{to{-webkit-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);opacity:1}}.grid.effect-3 li.animate{-webkit-transform:scale(.6);-o-transform:scale(.6);transform:scale(.6);-webkit-animation:c .65s ease-in-out forwards;-o-animation:c .65s ease-in-out forwards;animation:c .65s ease-in-out forwards}@-webkit-keyframes c{to{-webkit-transform:scale(1);opacity:1}}@-o-keyframes c{to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}@keyframes c{to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}.grid.effect-4{-webkit-perspective:1300px;perspective:1300px}.grid.effect-4 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(400px) translateY(300px) rotateX(-90deg);transform:translateZ(400px) translateY(300px) rotateX(-90deg);-webkit-animation:d .8s ease-in-out forwards;-o-animation:d .8s ease-in-out forwards;animation:d .8s ease-in-out forwards}@-webkit-keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}@-o-keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}@keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}.grid.effect-5{-webkit-perspective:1300px;perspective:1300px}.grid.effect-5 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:50% 50% -300px;-o-transform-origin:50% 50% -300px;transform-origin:50% 50% -300px;-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg);-webkit-animation:e .8s ease-in-out forwards;-o-animation:e .8s ease-in-out forwards;animation:e .8s ease-in-out forwards}.grid.effect-6{-webkit-perspective:1300px;perspective:1300px}.grid.effect-6 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-transform:rotateX(-80deg);transform:rotateX(-80deg);-webkit-animation:e .8s ease-in-out forwards;-o-animation:e .8s ease-in-out forwards;animation:e .8s ease-in-out forwards}@-webkit-keyframes e{to{-webkit-transform:rotateX(0deg);opacity:1}}@-o-keyframes e{to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes e{to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.grid.effect-7{-webkit-perspective:1300px;perspective:1300px}.grid.effect-7 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg);-webkit-animation:f .8s ease-in-out forwards;-o-animation:f .8s ease-in-out forwards;animation:f .8s ease-in-out forwards}@-webkit-keyframes f{to{-webkit-transform:rotateY(0deg);opacity:1}}@-o-keyframes f{to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@keyframes f{to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}.grid.effect-8{-webkit-perspective:1300px;perspective:1300px}.grid.effect-8 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:scale(.4);-o-transform:scale(.4);transform:scale(.4);-webkit-animation:g .8s ease-in forwards;-o-animation:g .8s ease-in forwards;animation:g .8s ease-in forwards}@-webkit-keyframes g{70%{-webkit-transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out}to{-webkit-transform:scale(1);opacity:1}}@-o-keyframes g{70%{-webkit-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out;-o-animation-timing-function:ease-out;animation-timing-function:ease-out}to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}@keyframes g{70%{-webkit-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out;-o-animation-timing-function:ease-out;animation-timing-function:ease-out}to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}.notifications{position:fixed;z-index:4}.notifications .fa-times{color:#fff;opacity:1}.notifications .close{padding-left:10px;padding-top:1px;opacity:1;font-size:20px}.notifications.top-right{right:10px;top:50px}.notifications.top-left{left:10px;top:50px}.notifications.bottom-left{left:10px;bottom:50px}.notifications.bottom-right{right:10px;bottom:50px}.notifications>div{position:relative;margin:5px 0}#material .cards{box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12);border-radius:2px}.fixed{position:fixed}.vertical-align{position:relative;top:50%;-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#scroll-arrow{position:relative;float:right;line-height:55px;height:55px;width:220px;display:block;padding:0 15px;margin-top:25px}#scroll-arrow .text{text-transform:uppercase;color:#dbad6f;font-size:18px;z-index:2;text-decoration:underline;-webkit-transition:color .3s;-o-transition:color .3s;transition:color .3s}#scroll-arrow .block,#scroll-arrow .text{position:absolute;vertical-align:middle;display:inline-block;font-weight:100}#scroll-arrow .block{z-index:1;right:0;padding-right:15px;width:65px;height:55px;background-color:#dbad6f;color:#fff;font-size:30px;text-align:center;text-align:right;-webkit-transition:width .3s;-o-transition:width .3s;transition:width .3s}#scroll-arrow:hover .text{color:#fff;text-decoration:none}#scroll-arrow:hover .block{width:100%}.arrow-up{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid red}.arrow-down{width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid red}.arrow-right{width:0;height:0;border-top:60px solid transparent;border-bottom:60px solid transparent;border-left:60px solid red}.arrow-left{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid red}.font-bold{font-weight:700}.font-light{font-weight:300}.font-p{color:#333}.font-primary{color:#f16b1d}.font-white{color:#fff}.font-off-white{color:#ecf0f1}.font-blue{color:#3498db}.font-yellow{color:#f1c40f}.font-purple{color:#9b59b6}.font-green{color:#2ecc71}.font-blue-green{color:#1abc9c}.font-red{color:#e74c3c}.font-orange{color:#e67e22}.font-concrete{color:#95a5a6}.background-p{background-color:#333}.background-primary{background-color:#f16b1d}.background-white{background-color:#fff}.background-off-white{background-color:#ecf0f1}.background-blue{background-color:#3498db}.background-yellow{background-color:#f1c40f}.background-purple{background-color:#9b59b6}.background-green{background-color:#2ecc71}.background-blue-green{background-color:#1abc9c}.background-red{background-color:#e74c3c}.background-orange{background-color:#e67e22}.background-concrete{background-color:#95a5a6}#transition .default{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}#transition .trans-hide{opacity:0;height:0;margin:0;padding:0}#transition .trans-hide:after,#transition .trans-hide:before{content:" ";display:table}#transition .trans-hide:after{clear:both}h1{font-size:32.8px}@media (min-width:768px){h1{font-size:36.9px}}@media (min-width:992px){h1{font-size:38.95px}}@media (min-width:1200px){h1{font-size:41px}}h2{font-size:27.2px}@media (min-width:768px){h2{font-size:30.6px}}@media (min-width:992px){h2{font-size:32.3px}}@media (min-width:1200px){h2{font-size:34px}}h3{font-size:22.4px}@media (min-width:768px){h3{font-size:25.2px}}@media (min-width:992px){h3{font-size:26.6px}}@media (min-width:1200px){h3{font-size:28px}}h4{font-size:16px}@media (min-width:768px){h4{font-size:18px}}@media (min-width:992px){h4{font-size:19px}}@media (min-width:1200px){h4{font-size:20px}}h5{font-size:12.8px}@media (min-width:768px){h5{font-size:14.4px}}@media (min-width:992px){h5{font-size:15.2px}}@media (min-width:1200px){h5{font-size:16px}}@media print{.container{width:100%;margin-left:10px;margin-right:10px}.notifications,.tooltip,[data-toggle*=tooltip],footer,header,img:after{display:none!important}.page-molecule h1#molecule-name{font-size:22px!important;padding-left:0!important;z-index:3;position:relative}.page-molecule h1#molecule-name:before{content:"Pitt Quantum Repository - "}.page-molecule h1#molecule-name .small{padding-top:5px;display:none}.page-molecule h1#molecule-name #print-molecule,.page-molecule h1#molecule-name #reset-molecule,.page-molecule h1#molecule-name #rotationSwitch{display:none}.page-molecule #molecule-properties .molecule-data,.page-molecule #molecule-properties .molecule-links,.page-molecule #molecule-properties .molecule-qr-code,.page-molecule #molecule-properties .molecule-switchview,.page-molecule #molecule-properties .panel-body,.page-molecule #molecule-properties .properties-view-options,.page-molecule #molecule-properties .tooltip-inner,.page-molecule h1#molecule-name .qr-code-icon{display:none!important}.page-molecule #molecule-properties a:link:after,.page-molecule #molecule-properties a:visited:after{content:""}.page-molecule #molecule-properties .molecule-tags li{margin-bottom:2px;margin-top:2px}.page-molecule #molecule-properties .molecule-tags a span{border:none!important}.page-molecule #molecule-properties .molecule-tags a:hover{text-decoration:none}.page-molecule #molecule-properties .molecule-tags a:hover span{color:#f16b1d;background-color:#fff}.page-molecule #molecule-properties .panel,.page-molecule #molecule-properties .panel-default,.page-molecule #molecule-properties .panel-heading{border:none;padding:0}.page-molecule #molecule-properties h2{font-size:21px;margin-bottom:0;padding-bottom:0}.page-molecule #molecule-properties h2 .properties-view-options{font-size:12px}.page-molecule #molecule-properties table{border:none}.page-molecule #molecule-properties table tr td:first-of-type{font-weight:700}.page-molecule #molecule-properties table tbody tr td{text-overflow:ellipsis;word-wrap:break-word;padding:4px;font-size:16px}.page-molecule #molecule-viewer canvas,.page-molecule #molecule-viewer div{height:250px;display:none}.page-molecule .svg-wrapper{position:relative;margin-bottom:-75px;margin-top:-75px;padding:0}.page-molecule .svg-wrapper img{height:500px;z-index:-100}.page-molecule #qr-print-wrapper{position:absolute;top:65px;left:28px}.page-molecule #qr-print-wrapper img{height:75px;z-index:3}}.alert-feedback{border-color:#b2dfdb;background-color:#5f9ea0;border-color:#7fb1b3;color:#e0f2f1}.alert-feedback hr{border-top-color:#a0d8d3;border-top-color:#6fa8a9}.alert-feedback .alert-link{color:#bce3e1}.alert-success{background-color:#9ad2d1;border-color:#bde2e1;color:#316f6e}.alert-success hr{border-top-color:#acdad9}.alert-success .alert-link{color:#224b4b}@media (min-width:992px){.dropdown-menu{-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;opacity:0;z-index:-1;display:block}.open .dropdown-menu{opacity:1;z-index:1}}nav{background:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form,nav .dropdown-menu,nav.navbar{border:none}.pqr-form .input-group{width:100%;padding-bottom:1.5em}.pqr-form .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}.pqr-form .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}.pqr-form .input-wrapper .input-field:focus{outline:none}.pqr-form .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.pqr-form .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.pqr-form .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}.pqr-form .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}.pqr-form .input--filled .input-label,.pqr-form .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}.pqr-form .input--filled .input-label-content,.pqr-form .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.pqr-form .input--filled .input-field,.pqr-form .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}.pqr-form .input--filled input::-webkit-input-placeholder,.pqr-form .input--filled textarea::-webkit-input-placeholder{color:#ddd}.pqr-form .input--filled input::-moz-placeholder,.pqr-form .input--filled textarea::-moz-placeholder{color:#ddd}.pqr-form .input--filled input:-ms-input-placeholder,.pqr-form .input--filled textarea:-ms-input-placeholder{color:#ddd}.pqr-form .input--filled input::placeholder,.pqr-form .input--filled textarea::placeholder{color:#ddd}.pqr-form input::-webkit-input-placeholder,.pqr-form textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input::-moz-placeholder,.pqr-form textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input:-ms-input-placeholder,.pqr-form textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input::placeholder,.pqr-form textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}.pqr-form .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.pqr-form .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}.pqr-form .inverse.input-wrapper input::-webkit-input-placeholder,.pqr-form .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input::-moz-placeholder,.pqr-form .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input:-ms-input-placeholder,.pqr-form .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input::placeholder,.pqr-form .inverse.input-wrapper textarea::placeholder{color:#ddd}form#form-contact .input-group{width:100%;padding-bottom:1.5em}form#form-contact .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}form#form-contact .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}form#form-contact .input-wrapper .input-field:focus{outline:none}form#form-contact .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form#form-contact .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form#form-contact .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}form#form-contact .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}form#form-contact .input--filled .input-label,form#form-contact .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .input--filled .input-label-content,form#form-contact .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .input--filled .input-field,form#form-contact .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .input--filled input::-webkit-input-placeholder,form#form-contact .input--filled textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .input--filled input::-moz-placeholder,form#form-contact .input--filled textarea::-moz-placeholder{color:#ddd}form#form-contact .input--filled input:-ms-input-placeholder,form#form-contact .input--filled textarea:-ms-input-placeholder{color:#ddd}form#form-contact .input--filled input::placeholder,form#form-contact .input--filled textarea::placeholder{color:#ddd}form#form-contact input::-webkit-input-placeholder,form#form-contact textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input::-moz-placeholder,form#form-contact textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input:-ms-input-placeholder,form#form-contact textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input::placeholder,form#form-contact textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .inverse.input-wrapper input::-webkit-input-placeholder,form#form-contact .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input::-moz-placeholder,form#form-contact .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input:-ms-input-placeholder,form#form-contact .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input::placeholder,form#form-contact .inverse.input-wrapper textarea::placeholder{color:#ddd}form#form-contact .input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .input-wrapper input::-webkit-input-placeholder,form#form-contact .input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .input-wrapper input::-moz-placeholder,form#form-contact .input-wrapper textarea::-moz-placeholder{color:#ddd}form#form-contact .input-wrapper input:-ms-input-placeholder,form#form-contact .input-wrapper textarea:-ms-input-placeholder{color:#ddd}form#form-contact .input-wrapper input::placeholder,form#form-contact .input-wrapper textarea::placeholder{color:#ddd}form#form-contact h3{padding-bottom:20px}form.autocomplete-search-form .input-group{width:100%;padding-bottom:1.5em}form.autocomplete-search-form .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}form.autocomplete-search-form .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}form.autocomplete-search-form .input-wrapper .input-field:focus{outline:none}form.autocomplete-search-form .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form.autocomplete-search-form .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form.autocomplete-search-form .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}form.autocomplete-search-form .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}form.autocomplete-search-form .input--filled .input-label,form.autocomplete-search-form .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form.autocomplete-search-form .input--filled .input-label-content,form.autocomplete-search-form .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form.autocomplete-search-form .input--filled .input-field,form.autocomplete-search-form .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form.autocomplete-search-form .input--filled input::-webkit-input-placeholder,form.autocomplete-search-form .input--filled textarea::-webkit-input-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input::-moz-placeholder,form.autocomplete-search-form .input--filled textarea::-moz-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input:-ms-input-placeholder,form.autocomplete-search-form .input--filled textarea:-ms-input-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input::placeholder,form.autocomplete-search-form .input--filled textarea::placeholder{color:#ddd}form.autocomplete-search-form input::-webkit-input-placeholder,form.autocomplete-search-form textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input::-moz-placeholder,form.autocomplete-search-form textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input:-ms-input-placeholder,form.autocomplete-search-form textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input::placeholder,form.autocomplete-search-form textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form.autocomplete-search-form .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form.autocomplete-search-form .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form.autocomplete-search-form .inverse.input-wrapper input::-webkit-input-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input::-moz-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input:-ms-input-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input::placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::placeholder{color:#ddd}form.autocomplete-search-form .input-wrapper{margin:1em}form.autocomplete-search-form .search.input-group{width:100%;max-width:1000px}@media (min-width:768px){form.autocomplete-search-form .search.input-group{width:90%}}@media (min-width:992px){form.autocomplete-search-form .search.input-group{width:90%}}@media (min-width:1200px){form.autocomplete-search-form .search.input-group{width:90%}}form.autocomplete-search-form .search.input-group .twitter-typeahead{width:100%;display:block!important}form.autocomplete-search-form .tt-menu{position:absolute!important;top:100%;display:block;margin-left:auto;margin-right:auto;width:100%;max-width:1000px}form.autocomplete-search-form .tt-menu .autocomplete-results{display:block;margin-left:auto;margin-right:auto;position:absolute;width:100%;z-index:3;top:65px;border:1px solid #dcdcdc;box-shadow:2px 2px 5px #f9f9f9}form.autocomplete-search-form .tt-menu .autocomplete-results:before{position:absolute;pointer-events:none;border:solid transparent;bottom:100%;content:"";height:0;width:0;border-bottom-color:#fff;border-width:9px;margin-left:-9px;left:50px;top:-18px}form.autocomplete-search-form .tt-menu .autocomplete-results.no-before:before{content:none}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;text-align:left;border-bottom:1px solid #9ad2d1;height:75px;background-color:#fff;padding:10px}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h4{color:#9ad2d1;margin-top:0;margin-bottom:0}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h4{color:#000}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion img{max-height:50px;display:block;margin-left:auto;margin-right:auto}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover{background-color:#9ad2d1}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor h4,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor i,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover h4,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover i{color:#fff}@media (max-width:991px){form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion{height:150px;text-align:center}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion a:hover{text-decoration:none}}color::-moz-selection{background:#3498db;color:#fff}::-moz-selection{background:#3498db;color:#fff}::selection{background:#3498db;color:#fff}body,html{overflow-x:hidden}body a.btn,body button.btn{-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color}body a,body a.btn,body button.btn{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}body a{-webkit-transition-property:color;-o-transition-property:color;transition-property:color}body nav .navbar-brand>img{margin-top:-10px;padding-left:5px}@media (min-width:768px){body nav .dropdown-menu{min-width:350px}}@media (max-width:767px){body nav .navbar-collapse li{padding-left:5%}}body #main{min-height:800px}body #browse-banner,body #home-banner{margin-top:-35px}body #splash-search{margin-top:10px}@media (max-width:991px){body #splash-search{margin-top:0}body #splash-search h2{font-size:22px}body #splash-search p{font-size:14px}}body .page-home .other-content .fa{color:#f16b1d}body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{margin-top:225px;height:200px}@media (min-width:768px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{margin-top:175px;height:250px}}@media (min-width:992px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{height:350px}}@media (min-width:1200px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{height:400px}}body .page-home .the-news a.list-group-item{-webkit-transition:background-color .25s ease-in-out;-o-transition:background-color .25s ease-in-out;transition:background-color .25s ease-in-out;background:#5f9ea0;color:#fff}body .page-home .the-news a.list-group-item i.fa{color:#fff}body .page-home .the-news a.list-group-item:hover{background-color:#fff;color:#5f9ea0}body .page-home .the-news a.list-group-item:hover i.fa{color:#5f9ea0}body .page-molecule h1#molecule-name{font-size:23px;padding-left:10px}@media (min-width:768px){body .page-molecule h1#molecule-name{font-size:30px}}@media (min-width:992px){body .page-molecule h1#molecule-name{font-size:32px}}@media (min-width:1200px){body .page-molecule h1#molecule-name{font-size:36px}}body .page-molecule h1#molecule-name .small{padding-top:5px}body .page-molecule #molecule-properties .panel{-webkit-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}body .page-molecule #molecule-properties .molecule-tags li{margin-bottom:2px;margin-top:2px}body .page-molecule #molecule-properties .molecule-tags a span{border:1px solid #f16b1d;-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}body .page-molecule #molecule-properties .molecule-tags a:hover{text-decoration:none}body .page-molecule #molecule-properties .molecule-tags a:hover span{color:#f16b1d;background-color:#fff}body .page-molecule #molecule-properties .tooltip-inner{width:150px;max-width:400px}body .page-molecule #molecule-properties h2{font-size:21px;margin-bottom:0;padding-bottom:0}@media (min-width:768px){body .page-molecule #molecule-properties h2{font-size:28px}}@media (min-width:992px){body .page-molecule #molecule-properties h2{font-size:24px;margin-top:0}}@media (min-width:1200px){body .page-molecule #molecule-properties h2{font-size:28px}}body .page-molecule #molecule-properties h2 .properties-view-options{font-size:12px}body .page-molecule #molecule-properties table tr td:first-of-type{font-weight:700}body .page-molecule #molecule-properties table tbody tr td{text-overflow:ellipsis;word-wrap:break-word}body .page-molecule #molecule-properties table tbody tr>td:first-child{min-width:150px}body .page-molecule #molecule-properties table tbody .molecule-alt-names ul{max-height:200px;overflow-y:scroll;overflow-x:scroll}body .page-molecule #molecule-properties .molecule-switchview .mobile .btn{width:100%;margin-bottom:10px}body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:250px}@media (min-width:768px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:350px}}@media (min-width:992px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:400px}}@media (min-width:1200px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:500px}}body .page-browse #splash-search{margin-top:10px}body .page-browse #splash-search #num-compounds{padding-top:20px}body .page-browse #splash-search #num-compounds .number{color:#d9534f}body .page-browse nav.pagination{width:100%}body .page-browse nav.pagination #molecule-ajax-loader{width:80%}body .page-browse nav.pagination .cogs{width:4.5em;height:4.5em;position:relative;display:block;margin-left:auto;margin-right:auto}body .page-browse nav.pagination .cogs i{font-size:2em;color:#f16b1d}body .page-browse nav.pagination .cogs i:nth-child(2){font-size:3em;top:.2em;left:.125em;-webkit-animation-direction:reverse;-o-animation-direction:reverse;animation-direction:reverse}body .page-browse nav.pagination .cogs i:nth-child(3){font-size:1.5em;top:.1em;left:.85em}body .page-browse .meta-data{text-align:center}body .page-contact address{box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12);border-radius:2px;padding:15px}body footer{background-image:-webkit-linear-gradient(top,#5f9ea0,#568e90);background-image:-webkit-linear-gradient(top,#5f9ea0 0,#568e90);background-image:-o-linear-gradient(top,#5f9ea0 0,#568e90);background-image:linear-gradient(180deg,#5f9ea0 0,#568e90);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f9ea0',endColorstr='#ff568e90',GradientType=0);padding-top:25px;padding-bottom:10px;margin-top:10px;color:#fff}@media (max-width:991px){body footer{text-align:center!important}}body footer a{color:#fff;font-weight:700}body footer a:hover{color:#fff}body footer .footer-brand{font-size:25px;padding-right:10px}body footer .footer-map{display:inline-block}body footer .footer-map li{padding-left:15px;text-transform:uppercase}body footer .footer-social .fa{font-size:1em;min-height:1.5em;-webkit-transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important;-o-transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important;transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important}@media (min-width:768px){body footer .footer-social .fa{font-size:2em;padding-right:5px;padding-left:5px}}@media (min-width:992px){body footer .footer-social .fa{font-size:2.5em;padding-right:10px;padding-left:10px}}body footer .footer-social .fa:hover{color:#b3b3b3}.feedback-messages-container{margin-bottom:22px}#qrcodemodal #qrcode img{max-width:100%;height:auto;display:block;margin-left:auto;margin-right:auto} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvcnMvZ3JpZC1sYXlvdXQubGVzcyIsImJvb3RzdHJhcC9taXhpbnMvZ3JpZC5sZXNzIiwibWFpbi5jc3MiLCJib290c3RyYXAvbWl4aW5zL2NlbnRlci1ibG9jay5sZXNzIiwiYm9vdHN0cmFwL21peGlucy92ZW5kb3ItcHJlZml4ZXMubGVzcyIsIm1pc2MvaGVscGVycy5sZXNzIiwidmVuZG9ycy9ib290c3RyYXAtbm90aWZ5Lmxlc3MiLCJtaXNjL3V0aWxzLmxlc3MiLCJtaXNjL2ZvbnQtaGVscGVycy5sZXNzIiwibWlzYy90cmFuc2l0aW9ucy5sZXNzIiwiYm9vdHN0cmFwL21peGlucy9jbGVhcmZpeC5sZXNzIiwibWlzYy90eXBvZ3JhcGh5Lmxlc3MiLCJtaXNjL3ByaW50Lmxlc3MiLCJib290c3RyYXAvbWl4aW5zL2FsZXJ0cy5sZXNzIiwibWlzYy9fYm9vdHN0cmFwLmxlc3MiLCJjb21wb25lbnRzL2Zvcm1zLmxlc3MiLCJtYWluLmxlc3MiLCJib290c3RyYXAvdHlwZS5sZXNzIiwiYm9vdHN0cmFwL21peGlucy9ncmFkaWVudHMubGVzcyIsImJvb3RzdHJhcC9taXhpbnMvaW1hZ2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUVDLGdCQUFBLGlCQUNBLFNBQ0EsQ0FFRCxTQ2tCRSxXQUFBLGtCQXlFQSxlQUNBLGFEdkZELGNBQUEsV0FDQSxTQUdBLENFaUJBLHlCRDBGRCxTQTNFSSxXQUFBLFNBQ0EsQ0NYRCxDQUNGLHlCRG9GRCxTQS9DSSxXQUFBLGtCQUNBLENDakNELENBQ0YsMEJEOEVELFNBbkJJLFdBQUEsU0FDQSxDQ3ZERCxDRjVCRix5Q0FFRSxTQUFBLENBakJILFdBcUJFLGFBQUEsWUFDQSxjQUNBLGNBQ0EsQ0FFQSxpQkFDQyxvQkFBQSxDQTNCSCxhR0hFLGNBQUEsaUJBQ0Esa0JIbUNBLGFBQUEsV0FDQSxDQWxDRixZQTBDRSxVQUFBLENBMUNGLG9CSXdMRSx5REFBQSxvREp6SUEsQUl5SUEsaURKeklB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IDY5ZW07XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMzBweCBhdXRvO1xuXHRwYWRkaW5nOiAwO1xufVxuLmdyaWQgbGkge1xuXHQubWFrZS14cy1jb2x1bW4oMTIpO1xuXHQubWFrZS1zbS1jb2x1bW4oNik7XG5cdC5tYWtlLW1kLWNvbHVtbig0KTtcblx0Lm1ha2UtbGctY29sdW1uKDMpO1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0b3BhY2l0eTogMDtcblxuXHQvL1Zpc2libGUgc3RhdGUgc2hvdyBpdGVtXG5cdCYuc2hvd24ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0Jjpob3ZlciB7XG5cdFx0Lm1vcmUtaW5mbyB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXHRhIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cblx0aW1nIHtcblx0XHQuY2VudGVyLWJsb2NrKCk7XG5cdFx0Ly8gLmltZy1yZXNwb25zaXZlKCk7XG5cdFx0aGVpZ2h0OiAyMDBweDsgXG5cdFx0d2lkdGg6IDIwMHB4OyBcblxuXHR9XG5cdC8vTW9sZWN1bGUgTmFtZVxuXHRoMyB7XG5cdH1cblx0Ly9Nb2xlY3VsZSBGb3JtdWxhXG5cdGg0IHtcblx0XHRjb2xvcjogYmxhY2s7XG5cdH1cblx0Ly9Pbmx5IHNob3cgb24gaG92ZXJcblx0Lm1vcmUtaW5mbyB7XG5cdFx0LnRyYW5zaXRpb24oYWxsIC4ycyBjdWJpYy1iZXppZXIoLjE3LCAuNjcsIC44MywgLjY3KSk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0b3A6IDA7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdCNyZXNwb25zaXZlLWhlbHBlcnMgLnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKHdpZHRoLCA5NSUsIDk1JSwgMTAwJSwgMTAwJSk7XG5cdFx0cGFkZGluZzogNSU7XG5cblx0XHRoMywgaDQge1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdFx0dGFibGUge1xuXHRcdH1cblx0fVxufVxuLy9CYWNrd2FyZHMgY29tcGF0YWJpbGl0eSAoU2hvdyB0aGUgaXRlbXMgYWx3YXlzKVxuLm5vLWpzIC5ncmlkIGxpLCAubm8tY3NzYW5pbWF0aW9ucyAuZ3JpZCBsaSB7XG5cdG9wYWNpdHk6IDE7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogR3JpZCBFZmZlY3RzIGZyb20gXG4gKiBcdGh0dHA6Ly90eW1wYW51cy5uZXQvRGV2ZWxvcG1lbnQvR3JpZExvYWRpbmdFZmZlY3RzL2luZGV4NC5odG1sXG4gKiBcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIEVmZmVjdCAxOiBvcGFjaXR5ICovXG4uZ3JpZC5lZmZlY3QtMSBsaS5hbmltYXRlIHtcblx0LXdlYmtpdC1hbmltYXRpb246IGZhZGVJbiAwLjY1cyBlYXNlIGZvcndhcmRzO1xuXHRhbmltYXRpb246IGZhZGVJbiAwLjY1cyBlYXNlIGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4vKiBFZmZlY3QgMjogTW92ZSBVcCAqL1xuLmdyaWQuZWZmZWN0LTIgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMHB4KTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMHB4KTtcblx0LXdlYmtpdC1hbmltYXRpb246IG1vdmVVcCAwLjY1cyBlYXNlIGZvcndhcmRzO1xuXHRhbmltYXRpb246IG1vdmVVcCAwLjY1cyBlYXNlIGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIG1vdmVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIG1vdmVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgMzogU2NhbGUgdXAgKi9cbi5ncmlkLmVmZmVjdC0zIGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC42KTtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogc2NhbGVVcCAwLjY1cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBzY2FsZVVwIDAuNjVzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNjYWxlVXAge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIEVmZmVjdCA0OiBmYWxsIHBlcnNwZWN0aXZlICovXG4uZ3JpZC5lZmZlY3QtNCB7XG5cdC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcblx0cGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC00IGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDQwMHB4KSB0cmFuc2xhdGVZKDMwMHB4KSByb3RhdGVYKC05MGRlZyk7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWig0MDBweCkgdHJhbnNsYXRlWSgzMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBmYWxsUGVyc3BlY3RpdmUgLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhbGxQZXJzcGVjdGl2ZSB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpIHRyYW5zbGF0ZVkoMHB4KSByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgZmFsbFBlcnNwZWN0aXZlIHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgNTogZmx5IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC01IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTUgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIC0zMDBweDtcblx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAtMzAwcHg7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBmbHkgLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuXHRhbmltYXRpb246IGZseSAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmx5IHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgZmx5IHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIEVmZmVjdCA2OiBmbGlwIChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC02IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTYgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcblx0dHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKC04MGRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlWCgtODBkZWcpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZmxpcCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbjogZmxpcCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGZsaXAge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLyogRWZmZWN0IDc6IGhlbGl4IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC03IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTcgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcblx0LXdlYmtpdC1hbmltYXRpb246IGhlbGl4IC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBoZWxpeCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgaGVsaXgge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuQGtleWZyYW1lcyBoZWxpeCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgODogICovXG4uZ3JpZC5lZmZlY3QtOCB7XG5cdC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcblx0cGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC04IGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBwb3BVcCAuOHMgZWFzZS1pbiBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBwb3BVcCAuOHMgZWFzZS1pbiBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwb3BVcCB7XG5cdDAlIHtcblx0fVxuXHQ3MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuXHRcdG9wYWNpdHk6IC44O1xuXHRcdC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcG9wVXAge1xuXHQwJSB7XG5cdH1cblx0NzAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cdFx0b3BhY2l0eTogLjg7XG5cdFx0LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59IiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICAoQGd1dHRlciAvIC0yKTtcbiAgbWFyZ2luLXJpZ2h0OiAoQGd1dHRlciAvIC0yKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXG4ubWFrZS14cy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBzbWFsbCBjb2x1bW5zXG4ubWFrZS1zbS1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBtZWRpdW0gY29sdW1uc1xuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xuLm1ha2UtbGctY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuIiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xufVxuLmdyaWQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDMwcHggYXV0bztcbiAgcGFkZGluZzogMDtcbn1cbi5ncmlkIGxpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICBvcGFjaXR5OiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ncmlkIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmdyaWQgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmdyaWQgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cbi5ncmlkIGxpLnNob3duIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5ncmlkIGxpOmhvdmVyIC5tb3JlLWluZm8ge1xuICBvcGFjaXR5OiAxO1xufVxuLmdyaWQgbGkgYSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5ncmlkIGxpIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uZ3JpZCBsaSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgaGVpZ2h0OiAyMDBweDtcbiAgd2lkdGg6IDIwMHB4O1xufVxuLmdyaWQgbGkgaDQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uZ3JpZCBsaSAubW9yZS1pbmZvIHtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC44MywgMC42Nyk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuODMsIDAuNjcpO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC44MywgMC42Nyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjE3LCAwLjY3LCAwLjgzLCAwLjY3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTA7XG4gIG1hcmdpbjogYXV0byBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA5NSU7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuICBwYWRkaW5nOiA1JTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZ3JpZCBsaSAubW9yZS1pbmZvIHtcbiAgICB3aWR0aDogOTUlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmdyaWQgbGkgLm1vcmUtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmdyaWQgbGkgLm1vcmUtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5ncmlkIGxpIC5tb3JlLWluZm8gaDMsXG4uZ3JpZCBsaSAubW9yZS1pbmZvIGg0IHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLm5vLWpzIC5ncmlkIGxpLFxuLm5vLWNzc2FuaW1hdGlvbnMgLmdyaWQgbGkge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEdyaWQgRWZmZWN0cyBmcm9tIFxuICogXHRodHRwOi8vdHltcGFudXMubmV0L0RldmVsb3BtZW50L0dyaWRMb2FkaW5nRWZmZWN0cy9pbmRleDQuaHRtbFxuICogXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBFZmZlY3QgMTogb3BhY2l0eSAqL1xuLmdyaWQuZWZmZWN0LTEgbGkuYW5pbWF0ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYWRlSW4gMC42NXMgZWFzZSBmb3J3YXJkcztcbiAgYW5pbWF0aW9uOiBmYWRlSW4gMC42NXMgZWFzZSBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIEVmZmVjdCAyOiBNb3ZlIFVwICovXG4uZ3JpZC5lZmZlY3QtMiBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogbW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgbW92ZVVwIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBtb3ZlVXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDM6IFNjYWxlIHVwICovXG4uZ3JpZC5lZmZlY3QtMyBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNjYWxlVXAgMC42NXMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogc2NhbGVVcCAwLjY1cyBlYXNlLWluLW91dCBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzY2FsZVVwIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIEVmZmVjdCA0OiBmYWxsIHBlcnNwZWN0aXZlICovXG4uZ3JpZC5lZmZlY3QtNCB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcbiAgcGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC00IGxpLmFuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDQwMHB4KSB0cmFuc2xhdGVZKDMwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWig0MDBweCkgdHJhbnNsYXRlWSgzMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFsbFBlcnNwZWN0aXZlIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMHB4KSB0cmFuc2xhdGVZKDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhbGxQZXJzcGVjdGl2ZSB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDU6IGZseSAoYmFzZWQgb24gaHR0cDovL2xhYi5oYWtpbS5zZS9zY3JvbGwtZWZmZWN0cy8gYnkgQGhha2ltZWwpICovXG4uZ3JpZC5lZmZlY3QtNSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcbiAgcGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC01IGxpLmFuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAtMzAwcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgLTMwMHB4O1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgtMTgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmx5IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmx5IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmx5IHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHkge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDY6IGZsaXAgKGJhc2VkIG9uIGh0dHA6Ly9sYWIuaGFraW0uc2Uvc2Nyb2xsLWVmZmVjdHMvIGJ5IEBoYWtpbWVsKSAqL1xuLmdyaWQuZWZmZWN0LTYge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMzAwcHg7XG59XG4uZ3JpZC5lZmZlY3QtNiBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoLTgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKC04MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmbGlwIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmxpcCAwLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDc6IGhlbGl4IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC03IHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuICBwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTcgbGkuYW5pbWF0ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGhlbGl4IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogaGVsaXggMC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBoZWxpeCB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgaGVsaXgge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDg6ICAqL1xuLmdyaWQuZWZmZWN0LTgge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMzAwcHg7XG59XG4uZ3JpZC5lZmZlY3QtOCBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcG9wVXAgMC44cyBlYXNlLWluIGZvcndhcmRzO1xuICBhbmltYXRpb246IHBvcFVwIDAuOHMgZWFzZS1pbiBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwb3BVcCB7XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgb3BhY2l0eTogLjg7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBwb3BVcCB7XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIG9wYWNpdHk6IC44O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyoqXG4gKiBCb290c3RyYXAgTm90aWZ5IFN0eWxlcyBcbiAqIFxuICogQHNpdGUgaHR0cHM6Ly9naXRodWIuY29tL2dvb2R5YmFnL2Jvb3RzdHJhcC1ub3RpZnlcbiAqL1xuLm5vdGlmaWNhdGlvbnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG59XG4ubm90aWZpY2F0aW9ucyAuZmEtdGltZXMge1xuICBjb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMTtcbn1cbi5ub3RpZmljYXRpb25zIC5jbG9zZSB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgb3BhY2l0eTogMS4wO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4vKiBQb3NpdGlvbmluZyAqL1xuLm5vdGlmaWNhdGlvbnMudG9wLXJpZ2h0IHtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogNTBweDtcbn1cbi5ub3RpZmljYXRpb25zLnRvcC1sZWZ0IHtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiA1MHB4O1xufVxuLm5vdGlmaWNhdGlvbnMuYm90dG9tLWxlZnQge1xuICBsZWZ0OiAxMHB4O1xuICBib3R0b206IDUwcHg7XG59XG4ubm90aWZpY2F0aW9ucy5ib3R0b20tcmlnaHQge1xuICByaWdodDogMTBweDtcbiAgYm90dG9tOiA1MHB4O1xufVxuLyogTm90aWZpY2F0aW9uIEVsZW1lbnQgKi9cbi5ub3RpZmljYXRpb25zID4gZGl2IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDVweCAwcHg7XG59XG4vKipcbiAqICBGb250IFNpemUgQ2xhc3NlcyA2IGxldmVscyB0byBhZGQgdG8ganMgZm9yIGdsb2JhbCBmb250LWFkanVzdG1lbnRcbiAqICAgIGZvbnQtIyAoMS02KVxuICpcbiAqL1xuI21hdGVyaWFsIC5jYXJkcyB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi8qKlxuICogTWlzY2VsbGVhbm91cyBMRVNTIGhlbHBlciBtaXhpbnNcbiAqIEBhdXRob3I6IEpvc2ggUm9nYW5cbiAqL1xuLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLnZlcnRpY2FsLWFsaWduIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbn1cbi52ZXJ0aWNhbC1hbGlnbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4vKipcbiAqIFJlc3BvbnNpdmUgdXRpbGl0aWVzIFxuICogIFxuICogXG4gKi9cbiNyZXNwb25zaXZlLWhlbHBlcnMge1xuICAvKipcblx0ICogTWl4aW4gdG8gYWxsb3cgdG8gc2V0IGFsbCBvZiB0aGUgcHJvcGVyIG1lZGlhIHNpemVzIGZvciBhIGhlaWdodFxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQHhzLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICogQHBhcmFtICB7SGVpZ2h0IFNpemV9IEBzbS1zaXplIFtUaGUgaGVpZ2h0IHlvdSB3YW50IGZvciB0aGlzIHNpemVdXG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAbWQtc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQGxnLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICovXG4gIC8qIFNtYWxsIGRldmljZXMgKG1vYmlsZSwgNzY4cHggYW5kIGRvd24pICovXG59XG4jc2Nyb2xsLWFycm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiA1NXB4O1xuICBoZWlnaHQ6IDU1cHg7XG4gIHdpZHRoOiAyMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgbWFyZ2luLXRvcDogMjVweDtcbn1cbiNzY3JvbGwtYXJyb3cgLnRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGNvbG9yOiAjZGJhZDZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgei1pbmRleDogMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMzAwbXM7XG4gIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zO1xufVxuI3Njcm9sbC1hcnJvdyAuYmxvY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICB3aWR0aDogNjVweDtcbiAgaGVpZ2h0OiA1NXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYmFkNmY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcztcbn1cbiNzY3JvbGwtYXJyb3c6aG92ZXIgLnRleHQge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiNzY3JvbGwtYXJyb3c6aG92ZXIgLmJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKipBcnJvdyBJY29ucyAqKi9cbi5hcnJvdy11cCB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA1cHggc29saWQgcmVkO1xufVxuLmFycm93LWRvd24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAyMHB4IHNvbGlkIHJlZDtcbn1cbi5hcnJvdy1yaWdodCB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDYwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDYwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA2MHB4IHNvbGlkIHJlZDtcbn1cbi5hcnJvdy1sZWZ0IHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHJlZDtcbn1cbi8qKlxuICpcdFZhcmlvdXMgZm9udCBoZWxwZXIgY2xhc3NlcyBmb3IgY29sb3JzIGFuZCBtb3JlXG4gKlxuICovXG4uZm9udC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uZm9udC1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uZm9udC1wIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4uZm9udC1wcmltYXJ5IHtcbiAgY29sb3I6ICNmMTZiMWQ7XG59XG4uZm9udC13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmZvbnQtb2ZmLXdoaXRlIHtcbiAgY29sb3I6ICNlY2YwZjE7XG59XG4uZm9udC1ibHVlIHtcbiAgY29sb3I6ICMzNDk4ZGI7XG59XG4uZm9udC15ZWxsb3cge1xuICBjb2xvcjogI2YxYzQwZjtcbn1cbi5mb250LXB1cnBsZSB7XG4gIGNvbG9yOiAjOWI1OWI2O1xufVxuLmZvbnQtZ3JlZW4ge1xuICBjb2xvcjogIzJlY2M3MTtcbn1cbi5mb250LWJsdWUtZ3JlZW4ge1xuICBjb2xvcjogIzFhYmM5Yztcbn1cbi5mb250LXJlZCB7XG4gIGNvbG9yOiAjZTc0YzNjO1xufVxuLmZvbnQtb3JhbmdlIHtcbiAgY29sb3I6ICNlNjdlMjI7XG59XG4uZm9udC1jb25jcmV0ZSB7XG4gIGNvbG9yOiAjOTVhNWE2O1xufVxuLmJhY2tncm91bmQtcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4uYmFja2dyb3VuZC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcbn1cbi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5iYWNrZ3JvdW5kLW9mZi13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2YwZjE7XG59XG4uYmFja2dyb3VuZC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjtcbn1cbi5iYWNrZ3JvdW5kLXllbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWM0MGY7XG59XG4uYmFja2dyb3VuZC1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWI1OWI2O1xufVxuLmJhY2tncm91bmQtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxO1xufVxuLmJhY2tncm91bmQtYmx1ZS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYWJjOWM7XG59XG4uYmFja2dyb3VuZC1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc0YzNjO1xufVxuLmJhY2tncm91bmQtb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2N2UyMjtcbn1cbi5iYWNrZ3JvdW5kLWNvbmNyZXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk1YTVhNjtcbn1cbi8qKlxuICpcdFZhcmlvdXMgdHJhbnNpdGlvbnMgaGVscGVyc1xuICpcbiAqL1xuI3RyYW5zaXRpb24ge1xuICAvKipcblx0ICogSGVscGVyIGNsYXNzIHRvIGFkZCB0cmFuc2l0aW9uIGJhc2VkIGhpZGVzIFxuXHQgKi9cbn1cbiN0cmFuc2l0aW9uIC5kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGUge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmJlZm9yZSxcbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGU6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmJlZm9yZSxcbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGU6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAzMi44cHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDM2LjlweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDM4Ljk1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDFweDtcbiAgfVxufVxuaDIge1xuICBmb250LXNpemU6IDI3LjJweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzAuNnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzIuM3B4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDM0cHg7XG4gIH1cbn1cbmgzIHtcbiAgZm9udC1zaXplOiAyMi40cHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDI1LjJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDI2LjZweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBoMyB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5oNCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuaDUge1xuICBmb250LXNpemU6IDEyLjhweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTQuNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTUuMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbi8qKlxuICogXHRTdHlsZXMgZm9yIHByaW50aW5nICBcbiAqIFxuICovXG5AbWVkaWEgcHJpbnQge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cbiAgaGVhZGVyLFxuICBmb290ZXIsXG4gIFtkYXRhLXRvZ2dsZSo9dG9vbHRpcF0sXG4gIGltZzphZnRlcixcbiAgLm5vdGlmaWNhdGlvbnMsXG4gIC50b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgaDEjbW9sZWN1bGUtbmFtZSB7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJQaXR0IFF1YW50dW0gUmVwb3NpdG9yeSAtIFwiO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUgLnNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgaDEjbW9sZWN1bGUtbmFtZSAjcm90YXRpb25Td2l0Y2gsXG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUgI3Jlc2V0LW1vbGVjdWxlLFxuICAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lICNwcmludC1tb2xlY3VsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIC5xci1jb2RlLWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAudG9vbHRpcC1pbm5lcixcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXN3aXRjaHZpZXcsXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0aWVzLXZpZXctb3B0aW9ucyxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLnBhbmVsLWJvZHksXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5tb2xlY3VsZS1saW5rcyxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXFyLWNvZGUsXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5tb2xlY3VsZS1kYXRhIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgYTpsaW5rOmFmdGVyLFxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBhOnZpc2l0ZWQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYSBzcGFuIHtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAubW9sZWN1bGUtdGFncyBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciBzcGFuIHtcbiAgICBjb2xvcjogI2YxNmIxZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAucGFuZWwtZGVmYXVsdCxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLnBhbmVsLFxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAucGFuZWwtaGVhZGluZyB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgaDIge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiAucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRyIHRkOmZpcnN0LW9mLXR5cGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAuc3ZnLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAtNzVweDtcbiAgICBtYXJnaW4tdG9wOiAtNzVweDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIC5zdmctd3JhcHBlciBpbWcge1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgei1pbmRleDogLTEwMDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjcXItcHJpbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjVweDtcbiAgICBsZWZ0OiAyOHB4O1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNxci1wcmludC13cmFwcGVyIGltZyB7XG4gICAgaGVpZ2h0OiA3NXB4O1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG59XG4vKipcbiAqICBCb290c3RyYXAgT3ZlcnJpZGVzIFxuICovXG4uYWxlcnQtZmVlZGJhY2sge1xuICBib3JkZXItY29sb3I6ICNCMkRGREI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZjllYTA7XG4gIGJvcmRlci1jb2xvcjogIzdmYjFiMztcbiAgY29sb3I6ICNFMEYyRjE7XG59XG4uYWxlcnQtZmVlZGJhY2sgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTBkOGQzO1xufVxuLmFsZXJ0LWZlZWRiYWNrIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICNiY2UzZTE7XG59XG4uYWxlcnQtZmVlZGJhY2sgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjNmZhOGE5O1xufVxuLmFsZXJ0LWZlZWRiYWNrIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICNiY2UzZTE7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5YWQyZDE7XG4gIGJvcmRlci1jb2xvcjogI2JkZTJlMTtcbiAgY29sb3I6ICMzMTZmNmU7XG59XG4uYWxlcnQtc3VjY2VzcyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhY2RhZDk7XG59XG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMjI0YjRiO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2Utb3V0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxubmF2IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5uYXYubmF2YmFyLFxubmF2IC5kcm9wZG93bi1tZW51IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyoqXG4gKiBGb3JtIFN0eWxpbmdcbiAqIFxuICovXG4ucHFyLWZvcm0gLmlucHV0LWdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucHFyLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwLjhlbTtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBmb3IgYm94IHNoYWRvd3MgdG8gc2hvdyBvbiBpT1MgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzLCBib3JkZXItY29sb3IgMC4yNXM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nLWxlZnQ6IDNlbTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgd2lkdGg6IDQwJTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDcwLjI1JTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDgwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMS4yNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDNlbSwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuNmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzhCOEM4QjtcbiAgcGFkZGluZzogMC41MGVtIDA7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCAuZmEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogIzk5OTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGJvdHRvbTogODAlO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZzogMC4xNWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuLnBxci1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCxcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnBxci1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCxcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG4ucHFyLWZvcm0gLmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWZpZWxkLFxuLnBxci1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuLnBxci1mb3JtIC5pbnB1dC0tZmlsbGVkIGlucHV0OjpwbGFjZWhvbGRlcixcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RkZDtcbn1cbi5wcXItZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIsXG4ucHFyLWZvcm0gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZTtcbiAgY29sb3I6ICM5OTk7XG59XG4ucHFyLWZvcm0gLmludmVyc2UuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbi5wcXItZm9ybSAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDEuNWVtO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwLjhlbTtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBmb3IgYm94IHNoYWRvd3MgdG8gc2hvdyBvbiBpT1MgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzLCBib3JkZXItY29sb3IgMC4yNXM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nLWxlZnQ6IDNlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZzogMCAxZW07XG4gIHdpZHRoOiA0MCU7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiA3MC4yNSU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA4MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDEuMjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzZW0sIDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuNmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzhCOEM4QjtcbiAgcGFkZGluZzogMC41MGVtIDA7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IC5mYSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjOTk5O1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb250ZW50KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXdlaWdodDogODAwO1xuICBib3R0b206IDgwJTtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmc6IDAuMTVlbSAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCxcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtZmllbGQsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjOWFkMmQxO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuZm9ybSNmb3JtLWNvbnRhY3QgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZTtcbiAgY29sb3I6ICM5OTk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmludmVyc2UuaW5wdXQtd3JhcHBlciBpbnB1dDo6cGxhY2Vob2xkZXIsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjOWFkMmQxO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMS41ZW07XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDAuOGVtO1xuICB3aWR0aDogNjAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXdlaWdodDogNDAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIGZvciBib3ggc2hhZG93cyB0byBzaG93IG9uIGlPUyAqL1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZDFkMDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMsIGJvcmRlci1jb2xvciAwLjI1cztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmctbGVmdDogM2VtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgd2lkdGg6IDQwJTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDcwLjI1JTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDgwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMS4yNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDNlbSwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS42ZW0gMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjOEI4QzhCO1xuICBwYWRkaW5nOiAwLjUwZW0gMDtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQgLmZhIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgY29sb3I6ICM5OTk7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGJvdHRvbTogODAlO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZzogMC4xNWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1maWVsZCxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBlYXNlO1xuICBjb2xvcjogIzk5OTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1ZW07XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIG1hcmdpbjogMWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG4gIC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuICAvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5zZWFyY2guaW5wdXQtZ3JvdXAge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCAudHdpdHRlci10eXBlYWhlYWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiA2NXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3gtc2hhZG93OiAycHggMnB4IDVweCAjZjlmOWY5O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3R0b206IDEwMCU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG4gIGJvcmRlci13aWR0aDogOXB4O1xuICBtYXJnaW4tbGVmdDogLTlweDtcbiAgbGVmdDogNTBweDtcbiAgdG9wOiAtMThweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cy5uby1iZWZvcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24ge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWFkMmQxO1xuICBoZWlnaHQ6IDc1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIGgzLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIGg0IHtcbiAgY29sb3I6ICM5YWQyZDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gaDQge1xuICBjb2xvcjogYmxhY2s7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gaW1nIHtcbiAgbWF4LWhlaWdodDogNTBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb246aG92ZXIsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzlhZDJkMTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyBkaXYuc3VnZ2VzdGlvbjpob3ZlciBoMyxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyBkaXYuc3VnZ2VzdGlvbi50dC1jdXJzb3IgaDMsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb246aG92ZXIgaDQsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIGg0LFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uOmhvdmVyIGksXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIGkge1xuICBjb2xvcjogd2hpdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBmb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5jb2xvcjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMzQ5OGRiO1xuICBjb2xvcjogd2hpdGU7XG59XG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMzNDk4ZGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmh0bWwsXG5ib2R5IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuYm9keSBidXR0b24uYnRuLFxuYm9keSBhLmJ0biB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI1cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5ib2R5IGEge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbmJvZHkgbmF2IC5uYXZiYXItYnJhbmQgPiBpbWcge1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSBuYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIG1pbi13aWR0aDogMzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBib2R5IG5hdiAubmF2YmFyLWNvbGxhcHNlIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICB9XG59XG5ib2R5ICNtYWluIHtcbiAgbWluLWhlaWdodDogODAwcHg7XG59XG5ib2R5ICNob21lLWJhbm5lcixcbmJvZHkgI2Jyb3dzZS1iYW5uZXIge1xuICBtYXJnaW4tdG9wOiAtMzVweDtcbn1cbmJvZHkgI3NwbGFzaC1zZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICAvKiBTbWFsbCBkZXZpY2VzIG9ubHkgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICBib2R5ICNzcGxhc2gtc2VhcmNoIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGJvZHkgI3NwbGFzaC1zZWFyY2ggaDIge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgfVxuICBib2R5ICNzcGxhc2gtc2VhcmNoIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuYm9keSAucGFnZS1ob21lIC5vdGhlci1jb250ZW50IC5mYSB7XG4gIGNvbG9yOiAjZjE2YjFkO1xufVxuYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgbWFyZ2luLXRvcDogMjI1cHg7XG4gIGhlaWdodDogMjAwcHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGJvZHkgLnBhZ2UtaG9tZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgICBtYXJnaW4tdG9wOiAxNzVweDtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuICBib2R5IC5wYWdlLWhvbWUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogMzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuICBib2R5IC5wYWdlLWhvbWUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0sXG5ib2R5IC5wYWdlLWhvbWUgLnRoZS1uZXdzIGEubGlzdC1ncm91cC1pdGVtIHtcbiAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIGJhY2tncm91bmQ6ICM1ZjllYTA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0gaS5mYSxcbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0gaS5mYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5ib2R5IC5wYWdlLWhvbWUgLnRoZS1uZXdzIGEubGlzdC1ncm91cC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjNWY5ZWEwO1xufVxuYm9keSAucGFnZS1ob21lIC50aGUtbmV3cyBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciBpLmZhLFxuYm9keSAucGFnZS1ob21lIC50aGUtbmV3cyBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciBpLmZhIHtcbiAgY29sb3I6ICM1ZjllYTA7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICBmb250LXNpemU6IDIzcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICBib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgfVxufVxuYm9keSAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIC5zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5wYW5lbCB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgbGkge1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYSBzcGFuIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YxNmIxZDtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciBzcGFuIHtcbiAgY29sb3I6ICNmMTZiMWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAudG9vbHRpcC1pbm5lciB7XG4gIHdpZHRoOiAxNTBweDtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgaDIge1xuICBmb250LXNpemU6IDIxcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIGgyIC5wcm9wZXJ0aWVzLXZpZXctb3B0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgdGFibGUgdHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB0Ym9keSB0ciB0ZCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRib2R5IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICBtaW4td2lkdGg6IDE1MHB4O1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB0Ym9keSAubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAubW9sZWN1bGUtc3dpdGNodmlldyAubW9iaWxlIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBkaXYsXG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGNhbnZhcyB7XG4gICAgaGVpZ2h0OiAzNTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBkaXYsXG4gIGJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGNhbnZhcyB7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgfVxufVxuYm9keSAucGFnZS1icm93c2UgI3NwbGFzaC1zZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuYm9keSAucGFnZS1icm93c2UgI3NwbGFzaC1zZWFyY2ggI251bS1jb21wb3VuZHMge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlICNzcGxhc2gtc2VhcmNoICNudW0tY29tcG91bmRzIC5udW1iZXIge1xuICBjb2xvcjogI2Q5NTM0Zjtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlIG5hdi5wYWdpbmF0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5ib2R5IC5wYWdlLWJyb3dzZSBuYXYucGFnaW5hdGlvbiAjbW9sZWN1bGUtYWpheC1sb2FkZXIge1xuICB3aWR0aDogODAlO1xufVxuYm9keSAucGFnZS1icm93c2UgbmF2LnBhZ2luYXRpb24gLmNvZ3Mge1xuICB3aWR0aDogNC41ZW07XG4gIGhlaWdodDogNC41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5ib2R5IC5wYWdlLWJyb3dzZSBuYXYucGFnaW5hdGlvbiAuY29ncyBpIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGNvbG9yOiAjZjE2YjFkO1xufVxuYm9keSAucGFnZS1icm93c2UgbmF2LnBhZ2luYXRpb24gLmNvZ3MgaTpudGgtY2hpbGQoMikge1xuICBmb250LXNpemU6IDNlbTtcbiAgdG9wOiAwLjJlbTtcbiAgbGVmdDogMC4xMjVlbTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlIG5hdi5wYWdpbmF0aW9uIC5jb2dzIGk6bnRoLWNoaWxkKDMpIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgdG9wOiAwLjFlbTtcbiAgbGVmdDogMC44NWVtO1xufVxuYm9keSAucGFnZS1icm93c2UgLm1ldGEtZGF0YSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmJvZHkgLnBhZ2UtY29udGFjdCBhZGRyZXNzIHtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAxcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAxNXB4O1xufVxuYm9keSBmb290ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmNWY5ZWEwJywgZW5kQ29sb3JzdHI9JyNmZjU2OGU5MCcsIEdyYWRpZW50VHlwZT0wKTtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgYm9keSBmb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5ib2R5IGZvb3RlciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmJvZHkgZm9vdGVyIGE6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG5ib2R5IGZvb3RlciAuZm9vdGVyLWJyYW5kIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuYm9keSBmb290ZXIgLmZvb3Rlci1tYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5ib2R5IGZvb3RlciAuZm9vdGVyLW1hcCBsaSB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmJvZHkgZm9vdGVyIC5mb290ZXItc29jaWFsIC5mYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtaW4taGVpZ2h0OiAxLjVlbTtcbiAgdHJhbnNpdGlvbjogZm9udC1zaXplIDAuM3MgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI3LCAxLjU1KSAhaW1wb3J0YW50O1xuICAvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG4gIC8qIE1lZGl1bSBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSBmb290ZXIgLmZvb3Rlci1zb2NpYWwgLmZhIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICBib2R5IGZvb3RlciAuZm9vdGVyLXNvY2lhbCAuZmEge1xuICAgIGZvbnQtc2l6ZTogMi41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIH1cbn1cbmJvZHkgZm9vdGVyIC5mb290ZXItc29jaWFsIC5mYTpob3ZlciB7XG4gIGNvbG9yOiAjYjNiM2IzO1xufVxuLyoqKioqR0xPQkFMIEVMRU1FTlRTICoqKiovXG4uZmVlZGJhY2stbWVzc2FnZXMtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcbn1cbiNxcmNvZGVtb2RhbCAjcXJjb2RlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcblxuLmNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuLmFuaW1hdGlvbihAYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246IEBhbmltYXRpb247XG59XG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogQG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xufVxuLmFuaW1hdGlvbi1kdXJhdGlvbihAZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbn1cbi5hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xufVxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoQGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbn1cbi5hbmltYXRpb24tZGlyZWN0aW9uKEBkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG59XG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbi5ib3gtc2hhZG93KEBzaGFkb3cpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbi5ib3gtc2l6aW5nKEBib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG4uaHlwaGVucyhAbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogQG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogQG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogQG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi5wbGFjZWhvbGRlcihAY29sb3I6IEBpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBAY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG59XG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG59XG4uc2NhbGVYKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG59XG4uc2NhbGVZKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG59XG4uc2tldyhAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbn1cbi50cmFuc2xhdGUoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xufVxuLnJvdGF0ZShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVYKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVZKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbn1cbi5wZXJzcGVjdGl2ZShAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbn1cbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG59XG4udHJhbnNmb3JtLW9yaWdpbihAb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuLnRyYW5zaXRpb24tcHJvcGVydHkoQHRyYW5zaXRpb24tcHJvcGVydHkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG59XG4udHJhbnNpdGlvbi1kdXJhdGlvbihAdHJhbnNpdGlvbi1kdXJhdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuIiwiLyoqXG4gKiBNaXNjZWxsZWFub3VzIExFU1MgaGVscGVyIG1peGluc1xuICogQGF1dGhvcjogSm9zaCBSb2dhblxuICovXG5cblxuXG4uZml4ZWQge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi52ZXJ0aWNhbC1hbGlnbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiA1MCU7XG5cdC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi52ZXJ0aWNhbC1hbGlnbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cblxuLyoqXG4gKiBSZXNwb25zaXZlIHV0aWxpdGllcyBcbiAqICBcbiAqIFxuICovXG5cbi8vRmFjdG9yIHRvIHJlZHVjZSBlYWNoIGVsZW1lbnQgYnkgXG5AeHMtcmVkdWN0aW9uOiAuODA7IFxuQHNtLXJlZHVjdGlvbjogLjkwOyBcbkBtZC1yZWR1Y3Rpb246IC45NTtcbkBsZy1yZWR1Y3Rpb246IDEuMDtcblxuXG4vL0V4dHJhIFNpemVzIFxuQHNjcmVlbi14cy1taW46IChAc2NyZWVuLXNtLW1pbiAtIDIwMHB4KTtcbkBzY3JlZW4teHhzLW1pbjogMjAwcHg7XG5cbiNyZXNwb25zaXZlLWhlbHBlcnMge1xuXHQucmVzcG9uc2l2ZS1hYnN0cmFjdC1tYW51YWwoQHByb3BlcnR5LCBAeHMtdmFsdWUsIEBzbS12YWx1ZSwgQG1kLXZhbHVlLCBAbGctdmFsdWUpe1xuXHRcdEB7cHJvcGVydHl9OiBAeHMtdmFsdWU7XG5cblx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAc20tdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1tZC1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAbWQtdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAbGctdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0LnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsLWV4dHJhKEBwcm9wZXJ0eSwgQHh4eHMtdmFsdWUsIEB4eHMtdmFsdWUsIEB4cy12YWx1ZSwgQHNtLXZhbHVlLCBAbWQtdmFsdWUsIEBsZy12YWx1ZSl7XG5cdFx0QHtwcm9wZXJ0eX06IEB4eHhzLXZhbHVlO1xuXG5cdFx0LyogU21hbGxlcmVyIGRldmljZXMgKHRhYmxldHMsIDIwMHB4IGFuZCB1cCkgKi9cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14eHMtbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQHh4cy12YWx1ZTtcblx0XHR9XG5cblx0XHQvKiBTbWFsbGVyIGRldmljZXMgKHRhYmxldHMsIDU2OHB4IGFuZCB1cCkgKi9cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14cy1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAeHMtdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQHNtLXZhbHVlO1xuXHRcdH1cblxuXHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbWQtbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQG1kLXZhbHVlO1xuXHRcdH1cblxuXHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbGctbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQGxnLXZhbHVlO1xuXHRcdH1cblx0fVxuXHRcblx0LnJlc3BvbnNpdmUtYWJzdHJhY3QoQHByb3BlcnR5LCBAc2l6ZSl7XG5cdFx0LnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKEBwcm9wZXJ0eSwgQHNpemUgKiBAeHMtcmVkdWN0aW9uLCBAc2l6ZSAqIEBzbS1yZWR1Y3Rpb24sIEBzaXplICogQG1kLXJlZHVjdGlvbiwgQHNpemUgKiBAbGctcmVkdWN0aW9uKTtcblx0fVxuXG5cdC5yZXNwb25zaXZlLWhlaWdodChAc2l6ZSkge1xuXHRcdC5yZXNwb25zaXZlLWhlaWdodC1tYW51YWwoQHNpemUgKiBAeHMtcmVkdWN0aW9uLCBAc2l6ZSAqIEBzbS1yZWR1Y3Rpb24sIEBzaXplICogQG1kLXJlZHVjdGlvbiwgQHNpemUgKiBAbGctcmVkdWN0aW9uKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNaXhpbiB0byBhbGxvdyB0byBzZXQgYWxsIG9mIHRoZSBwcm9wZXIgbWVkaWEgc2l6ZXMgZm9yIGEgaGVpZ2h0XG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAeHMtc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQHNtLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICogQHBhcmFtICB7SGVpZ2h0IFNpemV9IEBtZC1zaXplIFtUaGUgaGVpZ2h0IHlvdSB3YW50IGZvciB0aGlzIHNpemVdXG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAbGctc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKi9cblx0LnJlc3BvbnNpdmUtaGVpZ2h0LW1hbnVhbChAeHMtc2l6ZSwgQHNtLXNpemUsIEBtZC1zaXplLCBAbGctc2l6ZSkge1xuXHRcdC5yZXNwb25zaXZlLWFic3RyYWN0LW1hbnVhbChoZWlnaHQsIEB4cy1zaXplLCBAc20tc2l6ZSwgQG1kLXNpemUsIEBsZy1zaXplKTtcblx0fVxuXG5cblx0LyogU21hbGwgZGV2aWNlcyAobW9iaWxlLCA3NjhweCBhbmQgZG93bikgKi9cblx0LnJlc3BvbnNpdmUtbGVzcy14cyhAcHJvcGVydHksIEB2YWx1ZSl7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6QHNjcmVlbi14cy1tYXgpIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAdmFsdWU7XG5cdFx0fVxuXHR9XG5cblxuXG5cblxuXHRcblxufVxuI3Njcm9sbC1hcnJvdyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRsaW5lLWhlaWdodDogNTVweDtcblx0aGVpZ2h0OiA1NXB4O1xuXHR3aWR0aDogMjIwcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwIDE1cHg7XG5cdG1hcmdpbi10b3A6IDI1cHg7XG5cblx0LnRleHQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0Y29sb3I6ICNkYmFkNmY7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRmb250LXdlaWdodDogMTAwO1xuXHRcdHotaW5kZXg6IDI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcblx0XHR0cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcblx0fVxuXHQuYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cdFx0d2lkdGg6IDY1cHg7XG5cdFx0aGVpZ2h0OiA1NXB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNkYmFkNmY7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC13ZWlnaHQ6IDEwMDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuXHRcdHRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuXHR9XG5cdCY6aG92ZXIge1xuXHRcdC50ZXh0IHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0LmJsb2NrIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuLyoqQXJyb3cgSWNvbnMgKiovXG4uYXJyb3ctdXAge1xuXHR3aWR0aDogMDsgXG5cdGhlaWdodDogMDsgXG5cdGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcblx0Ym9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHJlZDtcbn1cblxuLmFycm93LWRvd24ge1xuXHR3aWR0aDogMDsgXG5cdGhlaWdodDogMDsgXG5cdGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFxuXHRib3JkZXItdG9wOiAyMHB4IHNvbGlkIHJlZDtcbn1cblxuLmFycm93LXJpZ2h0IHtcblx0d2lkdGg6IDA7IFxuXHRoZWlnaHQ6IDA7IFxuXHRib3JkZXItdG9wOiA2MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItYm90dG9tOiA2MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcblx0Ym9yZGVyLWxlZnQ6IDYwcHggc29saWQgcmVkO1xufVxuXG4uYXJyb3ctbGVmdCB7XG5cdHdpZHRoOiAwOyBcblx0aGVpZ2h0OiAwOyBcblx0Ym9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDsgXG5cdFxuXHRib3JkZXItcmlnaHQ6MTBweCBzb2xpZCByZWQ7IFxufSIsIi8qKlxuICogQm9vdHN0cmFwIE5vdGlmeSBTdHlsZXMgXG4gKiBcbiAqIEBzaXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29keWJhZy9ib290c3RyYXAtbm90aWZ5XG4gKi9cbkBub3RpZmljYXRpb25zLXktb2Zmc2V0OiA1MHB4O1xuQG5vdGlmaWNhdGlvbnMteC1vZmZzZXQ6IDEwcHg7IFxuXG4ubm90aWZpY2F0aW9ucyB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogOTk5OTtcblxuXHQuZmEtdGltZXMge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0LmNsb3NlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy10b3A6IDFweDtcblx0XHRvcGFjaXR5OiAxLjA7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHR9XG59XG5cbi8qIFBvc2l0aW9uaW5nICovXG4ubm90aWZpY2F0aW9ucy50b3AtcmlnaHQge1xuXHRyaWdodDogQG5vdGlmaWNhdGlvbnMteC1vZmZzZXQ7XG5cdHRvcDogQG5vdGlmaWNhdGlvbnMteS1vZmZzZXQ7XG59XG4ubm90aWZpY2F0aW9ucy50b3AtbGVmdCB7XG5cdGxlZnQ6IEBub3RpZmljYXRpb25zLXgtb2Zmc2V0O1xuXHR0b3A6IEBub3RpZmljYXRpb25zLXktb2Zmc2V0O1xufVxuLm5vdGlmaWNhdGlvbnMuYm90dG9tLWxlZnQge1xuXHRsZWZ0OiBAbm90aWZpY2F0aW9ucy14LW9mZnNldDtcblx0Ym90dG9tOiBAbm90aWZpY2F0aW9ucy15LW9mZnNldDtcbn1cbi5ub3RpZmljYXRpb25zLmJvdHRvbS1yaWdodCB7XG5cdHJpZ2h0OiBAbm90aWZpY2F0aW9ucy14LW9mZnNldDtcblx0Ym90dG9tOiBAbm90aWZpY2F0aW9ucy15LW9mZnNldFxufVxuXG4vKiBOb3RpZmljYXRpb24gRWxlbWVudCAqL1xuLm5vdGlmaWNhdGlvbnMgPiBkaXYge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogNXB4IDBweDtcbn0iLCIvKipcbiAqICBGb250IFNpemUgQ2xhc3NlcyA2IGxldmVscyB0byBhZGQgdG8ganMgZm9yIGdsb2JhbCBmb250LWFkanVzdG1lbnRcbiAqICAgIGZvbnQtIyAoMS02KVxuICpcbiAqL1xuI21hdGVyaWFse1xuICAuY2FyZHN7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCA2cHggMCByZ2JhKDAsMCwwLC4xMiksMCAxcHggNnB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB9XG59IiwiLyoqXHJcbiAqXHRWYXJpb3VzIGZvbnQgaGVscGVyIGNsYXNzZXMgZm9yIGNvbG9ycyBhbmQgbW9yZVxyXG4gKlxyXG4gKi9cclxuXHJcblxyXG4vL0ZsYXQgVUkgY29sb3JzIFxyXG5AY2xvdWRzOiAjZWNmMGYxO1xyXG5AcGV0ZXJSaXZlcjogIzM0OThkYjtcclxuQHN1bmZsb3dlcjogI2YxYzQwZjtcclxuQGFtZXRoeXN0OiAjOWI1OWI2O1xyXG5AZW1lcmFsZDogIzJlY2M3MTtcclxuQHR1cnF1b2lzZTogIzFhYmM5YzsgXHJcbkBhbGl6YXJpbjogI2U3NGMzYzsgXHJcbkBjYXJyb3Q6ICNlNjdlMjI7IFxyXG5AY29uY2VydGU6ICM5NWE1YTY7IFxyXG5cclxuXHJcbi5mb250LWJvbGR7IGZvbnQtd2VpZ2h0OiBib2xkO31cclxuLmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6IDMwMH1cclxuXHJcblxyXG4vL0ZvbnQgY29sb3IgY2hhbmdlcyBcclxuLmZvbnQtcHtjb2xvcjogQHRleHQtY29sb3I7fVxyXG4uZm9udC1wcmltYXJ5eyBjb2xvcjogQGJyYW5kLXByaW1hcnk7fVxyXG4uZm9udC13aGl0ZXsgY29sb3I6ICNmZmY7fVxyXG4uZm9udC1vZmYtd2hpdGV7IGNvbG9yOiBAY2xvdWRzO31cclxuLmZvbnQtYmx1ZXsgY29sb3I6IEBwZXRlclJpdmVyO31cclxuLmZvbnQteWVsbG93eyBjb2xvcjogQHN1bmZsb3dlcjt9XHJcbi5mb250LXB1cnBsZXsgY29sb3I6IEBhbWV0aHlzdDt9XHJcbi5mb250LWdyZWVueyBjb2xvcjogQGVtZXJhbGQ7fVxyXG4uZm9udC1ibHVlLWdyZWVue2NvbG9yOiBAdHVycXVvaXNlO31cclxuLmZvbnQtcmVke2NvbG9yOiBAYWxpemFyaW47fVxyXG4uZm9udC1vcmFuZ2V7Y29sb3I6IEBjYXJyb3Q7fVxyXG4uZm9udC1jb25jcmV0ZXtjb2xvcjogQGNvbmNlcnRlO31cclxuXHJcblxyXG4vL0ZvbnQgY29sb3IgY2hhbmdlcyBcclxuLmJhY2tncm91bmQtcHtiYWNrZ3JvdW5kLWNvbG9yOiBAdGV4dC1jb2xvcjt9XHJcbi5iYWNrZ3JvdW5kLXByaW1hcnl7IGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1wcmltYXJ5O31cclxuLmJhY2tncm91bmQtd2hpdGV7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7fVxyXG4uYmFja2dyb3VuZC1vZmYtd2hpdGV7IGJhY2tncm91bmQtY29sb3I6IEBjbG91ZHM7fVxyXG4uYmFja2dyb3VuZC1ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGV0ZXJSaXZlcjt9XHJcbi5iYWNrZ3JvdW5kLXllbGxvd3sgYmFja2dyb3VuZC1jb2xvcjogQHN1bmZsb3dlcjt9XHJcbi5iYWNrZ3JvdW5kLXB1cnBsZXsgYmFja2dyb3VuZC1jb2xvcjogQGFtZXRoeXN0O31cclxuLmJhY2tncm91bmQtZ3JlZW57IGJhY2tncm91bmQtY29sb3I6IEBlbWVyYWxkO31cclxuLmJhY2tncm91bmQtYmx1ZS1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiBAdHVycXVvaXNlO31cclxuLmJhY2tncm91bmQtcmVke2JhY2tncm91bmQtY29sb3I6IEBhbGl6YXJpbjt9XHJcbi5iYWNrZ3JvdW5kLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiBAY2Fycm90O31cclxuLmJhY2tncm91bmQtY29uY3JldGV7YmFja2dyb3VuZC1jb2xvcjogQGNvbmNlcnRlO30iLCIvKipcclxuICpcdFZhcmlvdXMgdHJhbnNpdGlvbnMgaGVscGVyc1xyXG4gKlxyXG4gKi9cclxuXHJcbkBjdXN0b20tdHJhbnMtdHlwZTogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI3LCAxLjU1KTtcclxuQGN1c3RvbS10cmFucy1zcGVlZDogMC4zcztcclxuXHJcbiN0cmFuc2l0aW9ue1xyXG5cdEBkZWZhdWx0LWRlbGF5OiAwcztcclxuXHRAZGVmYXVsdC1kdXJhdGlvbjogMC4yNXM7XHJcblx0QGRlZmF1bHQtcHJvcGVydHk6IGFsbDsgXHJcblx0QGRlZmF1bHQtdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyBcclxuXHJcblxyXG5cdC5kZWZhdWx0e1xyXG5cdFx0LmFic3RyYWN0KEBkZWZhdWx0LWRlbGF5LCBAZGVmYXVsdC1kdXJhdGlvbiwgQGRlZmF1bHQtcHJvcGVydHksIEBkZWZhdWx0LXRpbWluZy1mdW5jdGlvbik7XHJcblx0fVxyXG5cclxuXHQuZGVmYXVsdC1wcm9wZXJ0eShAaXRlbSl7XHJcblx0XHQuYWJzdHJhY3QoQGRlZmF1bHQtZGVsYXksIEBkZWZhdWx0LWR1cmF0aW9uLCBAaXRlbSwgQGRlZmF1bHQtdGltaW5nLWZ1bmN0aW9uKTtcclxuXHR9XHJcblxyXG5cdC5vZmYoKXtcclxuXHRcdHRyYW5zaXRpb246IG5vbmU7IFxyXG5cdH1cclxuXHJcblx0LmFic3RyYWN0KEBkZWxheSwgQGR1cmF0aW9uLCBAcHJvcGVydHksIEB0aW1pbmctZnVuY3Rpb24pe1xyXG5cdFx0dHJhbnNpdGlvbi1kZWxheTogQGRlbGF5O1xyXG5cdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xyXG5cdFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogQHByb3BlcnR5O1xyXG5cdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XHJcblx0fVxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogSGVscGVyIGNsYXNzIHRvIGFkZCB0cmFuc2l0aW9uIGJhc2VkIGhpZGVzIFxyXG5cdCAqL1xyXG5cdC50cmFucy1oaWRle1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdGhlaWdodDogMDtcclxuXHRcdG1hcmdpbjogMDsgXHJcblx0XHRwYWRkaW5nOiAwOyBcclxuXHRcdC5jbGVhcmZpeCgpO1xyXG5cdH1cclxufVxyXG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG4uY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIkB4cy1yZWR1Y3Rpb246IC44MDtcclxuQHNtLXJlZHVjdGlvbjogLjkwO1xyXG5AbWQtcmVkdWN0aW9uOiAuOTU7XHJcbkBsZy1yZWR1Y3Rpb246IDEuMDtcclxuXHJcblxyXG5oMXtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oMntcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oM3tcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oNHtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oNXtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59IiwiLyoqXG4gKiBcdFN0eWxlcyBmb3IgcHJpbnRpbmcgIFxuICogXG4gKi9cbkBtZWRpYSBwcmludCB7XG5cdC5jb250YWluZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0fVxuXHQvL0dsb2JhbCBIaWRlc1xuXHRoZWFkZXIsIGZvb3RlciwgW2RhdGEtdG9nZ2xlKj10b29sdGlwXSwgaW1nOmFmdGVyLCAubm90aWZpY2F0aW9ucywgLnRvb2x0aXAge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQvL01vbGVjdWxlIFBhZ2UgU3R5bGVzIFxuXHQucGFnZS1tb2xlY3VsZSB7XG5cdFx0aDEjbW9sZWN1bGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcblx0XHRcdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRcdFx0ei1pbmRleDogMTA7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQmOjpiZWZvcmV7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiUGl0dCBRdWFudHVtIFJlcG9zaXRvcnkgLSBcIjsgXG5cdFx0XHR9XG5cblx0XHRcdC5zbWFsbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA1cHg7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0XHQjcm90YXRpb25Td2l0Y2gsICNyZXNldC1tb2xlY3VsZSwgI3ByaW50LW1vbGVjdWxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRcdC5xci1jb2RlLWljb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCNtb2xlY3VsZS1wcm9wZXJ0aWVzIHtcblx0XHRcdC50b29sdGlwLWlubmVyLCAubW9sZWN1bGUtc3dpdGNodmlldywgLnByb3BlcnRpZXMtdmlldy1vcHRpb25zLCAucGFuZWwtYm9keSwgLm1vbGVjdWxlLWxpbmtzLCAubW9sZWN1bGUtcXItY29kZSwgLm1vbGVjdWxlLWRhdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHtcblx0XHRcdFx0Ly9GaXggU2l6aW5nIGZvciBsYXJnZSBzeW5veW0gbGlzdHNcblx0XHRcdH1cblx0XHRcdGE6bGluazphZnRlciwgYTp2aXNpdGVkOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdH1cblx0XHRcdC5tb2xlY3VsZS10YWdzIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0YTpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5wYW5lbC1kZWZhdWx0LCAucGFuZWwsIC5wYW5lbC1oZWFkaW5nIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdFx0aDIge1xuXHRcdFx0XHRmb250LXNpemU6IDIxcHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDBweDtcblxuXHRcdFx0XHQucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9UYWJsZSB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3IgdGhlIG1vbGVjdWxlIFxuXHRcdFx0dGFibGUge1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cblx0XHRcdFx0dHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGJvZHkge1xuXHRcdFx0XHRcdHRyIHRkIHtcblx0XHRcdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0XHRcdFx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogNHB4O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8zRG1vbCB2aWV3ZXJcblx0XHQjbW9sZWN1bGUtdmlld2VyIHtcblx0XHRcdGRpdiwgY2FudmFzIHtcblx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuc3ZnLXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0aGVpZ2h0OiA1MDBweDsgXG5cdFx0XHRcdHotaW5kZXg6IC0xMDA7XG5cdFx0XHR9XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtNzVweDtcblx0XHRcdG1hcmdpbi10b3A6IC03NXB4O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdFx0I3FyLXByaW50LXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA2NXB4OyBcblx0XHRcdGxlZnQ6IDI4cHg7IFxuXHRcdFx0aW1nIHtcblx0XHRcdFx0aGVpZ2h0OiA3NXB4OyBcblx0XHRcdFx0ei1pbmRleDogMTA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHR9XG59IiwiLy8gQWxlcnRzXG5cbi5hbGVydC12YXJpYW50KEBiYWNrZ3JvdW5kOyBAYm9yZGVyOyBAdGV4dC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG5cbiAgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAYm9yZGVyLCA1JSk7XG4gIH1cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oQHRleHQtY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8qKlxuICogIEJvb3RzdHJhcCBPdmVycmlkZXMgXG4gKi9cbi5hbGVydC1mZWVkYmFjayB7XG5cdC5hbGVydC12YXJpYW50KEB0aGVtZS1jYWRldC1ibHVlO1xuXHQjQjJERkRCO1xuXHQjRTBGMkYxKTtcblx0Ly9CYWNrZ3JvdW5kLCBib3JkZXIsIHRleHRCMkRGREJcblx0LmFsZXJ0LXZhcmlhbnQoQHRoZW1lLWNhZGV0LWJsdWU7XG5cdGxpZ2h0ZW4oQHRoZW1lLWNhZGV0LWJsdWUsIDEwJSk7XG5cdCNFMEYyRjEpO1xuXHQvL0JhY2tncm91bmQsIGJvcmRlciwgdGV4dEIyREZEQlxufVxuLmFsZXJ0LXN1Y2Nlc3Mge1xuXHQuYWxlcnQtdmFyaWFudChAdGhlbWUtbGlnaHQtYXF1YTtcblx0bGlnaHRlbihAdGhlbWUtbGlnaHQtYXF1YSwgMTAlKTtcblx0ZGFya2VuKEB0aGVtZS1saWdodC1hcXVhLCA0MCUpKTtcblx0Ly9CYWNrZ3JvdW5kLCBib3JkZXIsIHRleHRCMkRGREJcbn1cbkBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbWQtbWluKSB7XG5cdC5kcm9wZG93bi1tZW51IHtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2Utb3V0O1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblx0Lm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0ei1pbmRleDogMTtcblx0fVxufVxubmF2IHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cblx0Ji5uYXZiYXIsIC5kcm9wZG93bi1tZW51IHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdH1cbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcblx0Ym9yZGVyOiBub25lO1xufVxuXG5AbmF2YmFyLWRlZmF1bHQtYmc6ICNmZmY7XG5AbmF2YmFyLWRlZmF1bHQtYm9yZGVyOiBub25lOyIsIi8qKlxuICogRm9ybSBTdHlsaW5nXG4gKiBcbiAqL1xuXG4vL0dsb2JhbCBmb3JtIHN0eWxlXG4ucHFyLWZvcm0ge1xuXHQuaW5wdXQtZ3JvdXB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZy1ib3R0b206IDEuNWVtO1xuXHR9XG5cdC5pbnB1dC13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Ly8gbWFyZ2luOiAxZW07XG5cdFx0Ly8gd2lkdGg6IGNhbGMoMTAwJSAtIDJlbSk7XG5cdFx0d2lkdGg6IDEwMCU7IFxuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHQuaW5wdXQtZmllbGQge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRwYWRkaW5nOiAwLjhlbTtcblx0XHRcdHdpZHRoOiA2MCU7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0YmFja2dyb3VuZDogI2YwZjBmMDtcblx0XHRcdGNvbG9yOiAjODg4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogZm9yIGJveCBzaGFkb3dzIHRvIHNob3cgb24gaU9TICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMsIGJvcmRlci1jb2xvciAwLjI1cztcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAzZW07XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuaW5wdXQtbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0cGFkZGluZzogMCAxZW07XG5cdFx0XHR3aWR0aDogNDAlO1xuXHRcdFx0Y29sb3I6ICM2OTY5Njk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogNzAuMjUlO1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDgwJTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBhZGRpbmc6IDAgMS4yNWVtO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzZW0sIDApO1xuXHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuXHRcdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuXG5cdFx0XHQuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IDEuNmVtIDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRjb2xvcjogIzhCOEM4Qjtcblx0XHRcdFx0cGFkZGluZzogMC41MGVtIDA7XG5cdFx0XHRcdCBwYWRkaW5nLWJvdHRvbTogMXB4O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG5cdFx0XHRcdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblxuXHRcdFx0XHQvL0xlZnQgSWNvblxuXHRcdFx0XHQuZmEge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRcdGJvdHRvbTogODAlO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGNvbG9yOiBAdGhlbWUtbGlnaHQtYXF1YTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwLjE1ZW0gMDtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAwLjg1ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRcblx0fVxuXHQvL1N0eWxlcyBmb3IgZm9jdXNcblx0LmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsLCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdH1cblx0LmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50LCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcblx0fVxuXHQuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtZmllbGQsIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiBAdGhlbWUtbGlnaHQtYXF1YTtcblx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblx0fVxuXG5cdC5pbnB1dC0tZmlsbGVke1xuXHRcdGlucHV0OjpwbGFjZWhvbGRlciwgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiAjZGRkO1xuXHRcdH1cblx0fVxuXHQvL1BsYWNlaG9sZGVyXG5cdGlucHV0OjpwbGFjZWhvbGRlciwgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcblx0XHR0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBlYXNlO1xuXHRcdGNvbG9yOiAjOTk5O1xuXHR9XG5cblx0LmludmVyc2UuaW5wdXQtd3JhcHBlciB7XG5cdFx0LmlucHV0LWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdFx0fVxuXHRcdC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuXHRcdH1cblx0XHQuaW5wdXQtZmllbGR7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdGJvcmRlci1jb2xvcjogQHRoZW1lLWxpZ2h0LWFxdWE7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblx0XHR9XG5cblx0XHRpbnB1dDo6cGxhY2Vob2xkZXIsIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG5cdFx0XHRjb2xvcjogI2RkZDtcblx0XHR9XG5cdH1cbn1cblxuZm9ybSNmb3JtLWNvbnRhY3R7XG5cdC5wcXItZm9ybSgpO1xuXG5cdC5pbnB1dC13cmFwcGVye1xuXHRcdC5pbnZlcnNlLmlucHV0LXdyYXBwZXIoKTtcblx0fVxuXHRcblxuXG5cdGgze1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4OyBcblx0fVxufVxuXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSB7XG5cdC5wcXItZm9ybSgpO1xuXG5cdC5pbnB1dC13cmFwcGVye1xuXHRcdG1hcmdpbjogMWVtOyBcblx0fVxuXG5cdC8vUHJpbWFyeSBTZWFyY2ggSW5wdXRcblx0LnNlYXJjaC5pbnB1dC1ncm91cCB7XG5cdFx0I3Jlc3BvbnNpdmUtaGVscGVycyAucmVzcG9uc2l2ZS1hYnN0cmFjdC1tYW51YWwod2lkdGgsIDEwMCUsIDkwJSwgOTAlLCA5MCUpO1xuXHRcdG1heC13aWR0aDogMTAwMHB4O1xuXG5cdFx0LnR3aXR0ZXItdHlwZWFoZWFkIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblx0Ly9BdXRvIENvbXBsZXRlIFJlc3VsdHMgXG5cdC50dC1tZW51IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0XHR0b3A6IDEwMCU7XG5cdFx0LmNlbnRlci1ibG9jaygpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwMHB4O1xuXG5cdFx0LmF1dG9jb21wbGV0ZS1yZXN1bHRzIHtcblx0XHRcdC5jZW50ZXItYmxvY2soKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdC8vICNyZXNwb25zaXZlLWhlbHBlcnMgLnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKHdpZHRoLCAxMDAlLCA5MCUsIDkwJSwgOTAlKTtcblx0XHRcdC8vIG1heC13aWR0aDogMTAwMHB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdHRvcDogNjVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG5cdFx0XHRib3gtc2hhZG93OiAycHggMnB4IDVweCAjZjlmOWY5O1xuXG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiA5cHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtOXB4O1xuXHRcdFx0XHRsZWZ0OiA1MHB4O1xuXHRcdFx0XHR0b3A6IC0xOHB4O1xuXHRcdFx0fVxuXHRcdFx0Ji5uby1iZWZvcmUge1xuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGRpdi5zdWdnZXN0aW9uIHtcblx0XHRcdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQoKTtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEB0aGVtZS1saWdodC1hcXVhO1xuXHRcdFx0XHRoZWlnaHQ6IDc1cHg7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXG5cdFx0XHRcdGgzLCBoNCB7XG5cdFx0XHRcdFx0Y29sb3I6IEB0aGVtZS1saWdodC1hcXVhO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRoNCB7XG5cdFx0XHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0bWF4LWhlaWdodDogNTBweDtcblx0XHRcdFx0XHQuY2VudGVyLWJsb2NrKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Jjpob3ZlciwgJi50dC1jdXJzb3Ige1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1saWdodC1hcXVhO1xuXG5cdFx0XHRcdFx0aDMsIGg0LCBpIHtcblx0XHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWVkaWEgKG1heC13aWR0aDpAc2NyZWVuLXNtLW1heCkge1xuXHRcdFx0XHRcdGhlaWdodDogMTUwcHg7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdFx0YXtcblx0XHRcdFx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblx0fVxufSIsIi8vSW1wb3J0IGJvb3RzdHJhcCB2YXJpYWJsZXMgYW5kIG1peGlucyB0byB1c2UgdmFyaWFibGVzXG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzJztcbkBpbXBvcnQgKHJlZmVyZW5jZSkgXCJib290c3RyYXAvYm9vdHN0cmFwLmxlc3NcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvdmFyaWFibGVzLmxlc3NcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvbWl4aW5zLmxlc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2dyaWQtbGF5b3V0Lmxlc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2Jvb3RzdHJhcC1ub3RpZnkubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvdXRpbHMubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvaGVscGVycy5sZXNzXCI7IFxuQGltcG9ydCBcIm1pc2MvZm9udC1oZWxwZXJzLmxlc3NcIjtcbkBpbXBvcnQgXCJtaXNjL3RyYW5zaXRpb25zLmxlc3NcIjtcbkBpbXBvcnQgXCJtaXNjL3R5cG9ncmFwaHkubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvcHJpbnQubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvX2Jvb3RzdHJhcC5sZXNzXCI7XG5cbi8vQWRkaXRpb25hbCBjb21wb25lbnRzIFxuQGltcG9ydCBcImNvbXBvbmVudHMvZm9ybXMubGVzc1wiO1xuXG4vL0hpZ2hsaWd0aGVyIFx0XG5jb2xvcjo6LW1vei1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiBAcGV0ZXJSaXZlcjtcblx0Y29sb3I6IHdoaXRlO1xufVxuOjpzZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiBAcGV0ZXJSaXZlcjtcblx0Y29sb3I6IHdoaXRlO1xufVxuaHRtbCwgYm9keSB7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbmJvZHkge1xuXHQvL1RyYW5zaXRpb25zIFxuXHRidXR0b24uYnRuLCBhLmJ0biB7XG5cdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQtcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cblx0YSB7XG5cdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQtcHJvcGVydHkoY29sb3IpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0fVxuXHR9XG5cdG5hdiB7XG5cdFx0Ly9Mb2dvIFBsYWNlbWVudCBpbiB0aGUgbmF2YmFyIFxuXHRcdC5uYXZiYXItYnJhbmQgPiBpbWcge1xuXHRcdFx0bWFyZ2luLXRvcDogLTEwcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcblx0XHR9XG5cdFx0LmRyb3Bkb3duLW1lbnUge1xuXHRcdFx0Ly9NYWtlIHRoZSBkcm9wIGRvd24gYmlnZ2VyIHdoZW4gaXQgaXNuJ3QgY29sbGFwc2VkIFxuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0bWluLXdpZHRoOiAzNTBweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly9BZGQgcGFkZGluZyB0byB0aGUgbmF2YmFyIHdoZW4gY29sbGFwc2VkXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6QHNjcmVlbi14cy1tYXgpIHtcblx0XHRcdC5uYXZiYXItY29sbGFwc2UgbGkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQjbWFpbiB7XG5cdFx0bWluLWhlaWdodDogODAwcHg7XG5cdH1cblx0I2hvbWUtYmFubmVyLCAjYnJvd3NlLWJhbm5lciB7XG5cdFx0bWFyZ2luLXRvcDogLTM1cHg7XG5cdH1cblx0I3NwbGFzaC1zZWFyY2gge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHQvKiBTbWFsbCBkZXZpY2VzIG9ubHkgKi9cblx0XHRAbWVkaWEgKG1heC13aWR0aDpAc2NyZWVuLXNtLW1heCkge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHR9XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQvL0hvbWUgcGFnZSBzdHlsaW5nIFxuXHQucGFnZS1ob21lIHtcblx0XHQvL2xpc3QgY29udGVudCBvZiBhcnRpY2xlcywgbGlua3MsIGV0Yy5cblx0XHQub3RoZXItY29udGVudCB7XG5cdFx0XHQuZmEge1xuXHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vM0Rtb2wgdmlld2VyXG5cdFx0I21vbGVjdWxlLXZpZXdlciB7XG5cdFx0XHQvL01ha2UgdGhlIDNkbW9sZSBzb21ld2hhdCByZXNwb25zaXZlIFxuXHRcdFx0ZGl2LCBjYW52YXMge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMjVweDtcblx0XHRcdFx0aGVpZ2h0OiAyMDBweDtcblxuXHRcdFx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTc1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGhlaWdodDogMzUwcHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0XHRoZWlnaHQ6IDQwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnRoZS1uZXdze1xuXHRcdFx0YS5saXN0LWdyb3VwLWl0ZW0sIGEubGlzdC1ncm91cC1pdGVte1xuXHRcdFx0XHQudHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBAdGhlbWUtY2FkZXQtYmx1ZTtcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0XHRpLmZhe1xuXHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTsgXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcblx0XHRcdFx0XHRjb2xvcjogQHRoZW1lLWNhZGV0LWJsdWU7IFxuXHRcdFx0XHRcdGkuZmF7XG5cdFx0XHRcdFx0XHRjb2xvcjpAdGhlbWUtY2FkZXQtYmx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly9Nb2xlY3VsZSBTdHlsaW5nIFxuXHQucGFnZS1tb2xlY3VsZSB7XG5cdFx0aDEjbW9sZWN1bGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cblx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRcdH1cblxuXHRcdFx0LyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdFx0fVxuXHRcdFx0LnNtYWxsIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDVweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0I21vbGVjdWxlLXByb3BlcnRpZXMge1xuXHRcdFx0LnBhbmVse1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG5cdFx0XHR9XG5cblx0XHRcdC5tb2xlY3VsZS10YWdzIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCBAYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0XHRcdCN0cmFuc2l0aW9uIC5kZWZhdWx0LXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBAYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9Xb3JrYXJvdW5kIHRvb2x0aXAgc2l6ZVxuXHRcdFx0LnRvb2x0aXAtaW5uZXIge1xuXHRcdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHR9XG5cdFx0XHRoMiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjFweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMHB4O1xuXG5cdFx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDI4cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1tZC1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLWxnLW1pbikge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhweDtcblx0XHRcdFx0fVxuXHRcdFx0XHQucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9UYWJsZSB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3IgdGhlIG1vbGVjdWxlIFxuXHRcdFx0dGFibGUge1xuXHRcdFx0XHR0ciB0ZDpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHQvL0JvbGQgdGhlIGZpcnN0IGNvbHVtblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRib2R5IHtcblx0XHRcdFx0XHR0ciB0ZCB7XG5cdFx0XHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0XHRcdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dHIgPiB0ZDpmaXJzdC1jaGlsZHtcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogMTUwcHg7IFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcblx0XHRcdFx0XHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdFx0XHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0XHRcdFx0b3ZlcmZsb3cteDogc2Nyb2xsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvL0Zvb3RlciBCdXR0b24gR3JvdXBcblx0XHRcdC5tb2xlY3VsZS1zd2l0Y2h2aWV3e1xuXHRcdFx0XHQubW9iaWxle1xuXHRcdFx0XHRcdC5idG57XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTsgXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvLzNEbW9sIHZpZXdlclxuXHRcdCNtb2xlY3VsZS12aWV3ZXIge1xuXHRcdFx0Ly9NYWtlIHRoZSAzZG1vbGUgc29tZXdoYXQgcmVzcG9uc2l2ZSBcblx0XHRcdGRpdiwgY2FudmFzIHtcblx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblxuXHRcdFx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdFx0aGVpZ2h0OiAzNTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGhlaWdodDogNDAwcHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0XHRoZWlnaHQ6IDUwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8vQnJvd3NpbmcgUGFnZSBTdHlsZVxuXHQucGFnZS1icm93c2Uge1xuXHRcdCNzcGxhc2gtc2VhcmNoIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRcdCNudW0tY29tcG91bmRzIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cblx0XHRcdFx0Lm51bWJlciB7XG5cdFx0XHRcdFx0Y29sb3I6IEBicmFuZC1kYW5nZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0XG5cdFx0fVxuXG5cdFx0Ly9BSkFYIGxvYWRpbmcgYnV0dG9uIGZvciByZXN1bHRzIFxuXHRcdG5hdi5wYWdpbmF0aW9ue1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHQjbW9sZWN1bGUtYWpheC1sb2FkZXJ7XG5cdFx0XHRcdHdpZHRoOiA4MCU7IFxuXHRcdFx0fVxuXG5cdFx0XHQuY29nc3tcblx0XHRcdFx0d2lkdGg6IDQuNWVtO1xuICBcdFx0XHRcdGhlaWdodDogNC41ZW07XG4gIFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHQuY2VudGVyLWJsb2NrKCk7XG5cblx0XHRcdFx0aXtcblx0XHRcdFx0XHRmb250LXNpemU6IDJlbTtcblx0XHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyKXtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogM2VtO1xuXHRcdFx0XHRcdFx0dG9wOiAwLjJlbTtcblx0XHRcdFx0XHRcdGxlZnQ6IDAuMTI1ZW07XG5cdFx0XHRcdFx0XHRhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMpe1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdFx0XHRcdHRvcDogMC4xZW07XG5cdFx0XHRcdFx0XHRsZWZ0OiAwLjg1ZW07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblxuXG5cdFx0XHRcblx0XHR9XG5cblx0XHQubWV0YS1kYXRhe1xuXHRcdFx0LnRleHQtY2VudGVyKCk7XG5cdFx0fVxuXG5cdH1cblx0Ly9Db250YWN0IFVTIFN0eWxpbmcgXG5cdC5wYWdlLWNvbnRhY3Qge1xuXHRcdGFkZHJlc3Mge1xuXHRcdFx0I21hdGVyaWFsIC5jYXJkcygpO1xuXHRcdFx0cGFkZGluZzogMTVweDtcblx0XHR9XG5cdH1cblx0Zm9vdGVyIHtcblx0XHQjZ3JhZGllbnQgPiAudmVydGljYWwoQHRoZW1lLWNhZGV0LWJsdWUsIGRhcmtlbihAdGhlbWUtY2FkZXQtYmx1ZSwgNSUpKTtcblx0XHRwYWRkaW5nLXRvcDogMjVweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOkBzY3JlZW4tc20tbWF4KSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZFxuXHRcdH1cblx0XHRhOmhvdmVyIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHR9XG5cdFx0LmZvb3Rlci1icmFuZCB7XG5cdFx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblx0XHQuZm9vdGVyLW1hcCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZm9vdGVyLXNvY2lhbCB7XG5cdFx0XHQuZmEge1xuXHRcdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdFx0bWluLWhlaWdodDogMS41ZW07XG5cdFx0XHRcdHRyYW5zaXRpb246IGZvbnQtc2l6ZSBAY3VzdG9tLXRyYW5zLXNwZWVkIEBjdXN0b20tdHJhbnMtdHlwZSAhaW1wb3J0YW50O1xuXG5cdFx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDJlbTtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiA1cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBNZWRpdW0gZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMi41ZW07XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5mYTpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBkYXJrZW4oI2ZmZiwgMzAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqKioqR0xPQkFMIEVMRU1FTlRTICoqKiovXG4uZmVlZGJhY2stbWVzc2FnZXMtY29udGFpbmVyIHtcblx0bWFyZ2luLWJvdHRvbTogMjJweDtcbn1cbi8vTWFrZSB0aGUgcXIgaW1nZSBnZW5lcmF0ZWQgYnkganMgcHJvcGVybHkgYWxpZ25lZFxuI3FyY29kZW1vZGFsICNxcmNvZGUgaW1nIHtcblx0LmltZy1yZXNwb25zaXZlKCk7XG5cdC5jZW50ZXItYmxvY2soKTtcbn1cbiIsIi8vXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEhlYWRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IEBoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6IEBoZWFkaW5ncy1jb2xvcjtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBAaGVhZGluZ3Mtc21hbGwtY29sb3I7XG4gIH1cbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzIHtcbiAgbWFyZ2luLXRvcDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA2NSU7XG4gIH1cbn1cbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIG1hcmdpbi10b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICB9XG59XG5cbmgxLCAuaDEgeyBmb250LXNpemU6IEBmb250LXNpemUtaDE7IH1cbmgyLCAuaDIgeyBmb250LXNpemU6IEBmb250LXNpemUtaDI7IH1cbmgzLCAuaDMgeyBmb250LXNpemU6IEBmb250LXNpemUtaDM7IH1cbmg0LCAuaDQgeyBmb250LXNpemU6IEBmb250LXNpemUtaDQ7IH1cbmg1LCAuaDUgeyBmb250LXNpemU6IEBmb250LXNpemUtaDU7IH1cbmg2LCAuaDYgeyBmb250LXNpemU6IEBmb250LXNpemUtaDY7IH1cblxuXG4vLyBCb2R5IHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxucCB7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbn1cblxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKEBmb250LXNpemUtYmFzZSAqIDEuMTUpKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICB9XG59XG5cblxuLy8gRW1waGFzaXMgJiBtaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEV4OiAoMTJweCBzbWFsbCBmb250IC8gMTRweCBiYXNlIGZvbnQpICogMTAwJSA9IGFib3V0IDg1JVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IGZsb29yKCgxMDAlICogQGZvbnQtc2l6ZS1zbWFsbCAvIEBmb250LXNpemUtYmFzZSkpO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RhdGUtd2FybmluZy1iZztcbiAgcGFkZGluZzogLjJlbTtcbn1cblxuLy8gQWxpZ25tZW50XG4udGV4dC1sZWZ0ICAgICAgICAgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi50ZXh0LXJpZ2h0ICAgICAgICAgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ZXh0LWNlbnRlciAgICAgICAgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udGV4dC1qdXN0aWZ5ICAgICAgICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbi50ZXh0LW5vd3JhcCAgICAgICAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vLyBUcmFuc2Zvcm1hdGlvblxuLnRleHQtbG93ZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4udGV4dC11cHBlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbi50ZXh0LWNhcGl0YWxpemUgICAgIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLy8gQ29udGV4dHVhbCBjb2xvcnNcbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xufVxuLnRleHQtcHJpbWFyeSB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLnRleHQtc3VjY2VzcyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG59XG4udGV4dC1pbmZvIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtaW5mby10ZXh0KTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLXRleHQpO1xufVxuLnRleHQtZGFuZ2VyIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtZGFuZ2VyLXRleHQpO1xufVxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG4vLyBGb3Igbm93IHdlJ2xsIGxlYXZlIHRoZXNlIGFsb25nc2lkZSB0aGUgdGV4dCBjbGFzc2VzIHVudGlsIHY0IHdoZW4gd2UgY2FuXG4vLyBzYWZlbHkgc2hpZnQgdGhpbmdzIGFyb3VuZCAocGVyIFNlbVZlciBydWxlcykuXG4uYmctcHJpbWFyeSB7XG4gIC8vIEdpdmVuIHRoZSBjb250cmFzdCBoZXJlLCB0aGlzIGlzIHRoZSBvbmx5IGNsYXNzIHRvIGhhdmUgaXRzIGNvbG9yIGludmVydGVkXG4gIC8vIGF1dG9tYXRpY2FsbHkuXG4gIGNvbG9yOiAjZmZmO1xuICAuYmctdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4uYmctc3VjY2VzcyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5iZy1pbmZvIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWluZm8tYmcpO1xufVxuLmJnLXdhcm5pbmcge1xuICAuYmctdmFyaWFudChAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uYmctZGFuZ2VyIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cblxuLy8gUGFnZSBoZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKTtcbiAgbWFyZ2luOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMikgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yO1xufVxuXG5cbi8vIExpc3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFVub3JkZXJlZCBhbmQgT3JkZXJlZCBsaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIExpc3Qgb3B0aW9uc1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgLmxpc3QtdW5zdHlsZWQoKTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgfVxufVxuXG4vLyBEZXNjcmlwdGlvbiBMaXN0c1xuZGwge1xuICBtYXJnaW4tdG9wOiAwOyAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuLy8gSG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIERlZmF1bHRzIHRvIGJlaW5nIHN0YWNrZWQgd2l0aG91dCBhbnkgb2YgdGhlIGJlbG93IHN0eWxlcyBhcHBsaWVkLCB1bnRpbCB0aGVcbi8vIGdyaWQgYnJlYWtwb2ludCBpcyByZWFjaGVkIChkZWZhdWx0IG9mIH43NjhweCkuXG5cbi5kbC1ob3Jpem9udGFsIHtcbiAgZGQge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBDbGVhciB0aGUgZmxvYXRlZCBgZHRgIGlmIGFuIGVtcHR5IGBkZGAgaXMgcHJlc2VudFxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAoQGRsLWhvcml6b250YWwtb2Zmc2V0IC0gMjApO1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIC50ZXh0LW92ZXJmbG93KCk7XG4gICAgfVxuICAgIGRkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZGwtaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBYmJyZXZpYXRpb25zIGFuZCBhY3Jvbnltc1xuYWJiclt0aXRsZV0sXG4vLyBBZGQgZGF0YS0qIGF0dHJpYnV0ZSB0byBoZWxwIG91dCBvdXIgdG9vbHRpcCBwbHVnaW4sIHBlciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzUyNTdcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgQGFiYnItYm9yZGVyLWNvbG9yO1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLy8gQmxvY2txdW90ZXNcbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW46IDAgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogQGJsb2NrcXVvdGUtZm9udC1zaXplO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcblxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vdGU6IERlcHJlY2F0ZWQgc21hbGwgYW5kIC5zbWFsbCBhcyBvZiB2My4xLjBcbiAgLy8gQ29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY2MFxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogODAlOyAvLyBiYWNrIHRvIGRlZmF1bHQgZm9udC1zaXplXG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAYmxvY2txdW90ZS1zbWFsbC1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgLy8gZW0gZGFzaCwgbmJzcFxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHBvc2l0ZSBhbGlnbm1lbnQgb2YgYmxvY2txdW90ZVxuLy9cbi8vIEhlYWRzIHVwOiBgYmxvY2txdW90ZS5wdWxsLXJpZ2h0YCBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mIHYzLjEuMC5cbi5ibG9ja3F1b3RlLXJldmVyc2UsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gIC8vIEFjY291bnQgZm9yIGNpdGF0aW9uXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgJjpiZWZvcmUgeyBjb250ZW50OiAnJzsgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnOyAvLyBuYnNwLCBlbSBkYXNoXG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHJlc3Nlc1xuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuI2dyYWRpZW50IHtcblxuICAvLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAudmVydGljYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC5kaXJlY3Rpb25hbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIH1cbiAgLmhvcml6b250YWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC52ZXJ0aWNhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAucmFkaWFsKEBpbm5lci1jb2xvcjogIzU1NTsgQG91dGVyLWNvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnN0cmlwZWQoQGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7IEBhbmdsZTogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG4uaW1nLXJldGluYShAZmlsZS0xeDsgQGZpbGUtMng7IEB3aWR0aC0xeDsgQGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBAd2lkdGgtMXggQGhlaWdodC0xeDtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */ +.grid{list-style:none;margin:30px auto;padding:0}.grid li{width:100%;position:relative;min-height:1px;padding:15px;display:block;float:left;opacity:0}@media (min-width:768px){.grid li{float:left;width:50%}}@media (min-width:992px){.grid li{float:left;width:33.33333333%}}@media (min-width:1200px){.grid li{float:left;width:25%}}.grid li.shown,.grid li:hover .more-info{opacity:1}.grid li a{outline:none;border:none;display:block;max-width:100%}.grid li a:hover{text-decoration:none}.grid li img{display:block;margin-left:auto;margin-right:auto;height:200px;width:200px}.grid li h4{color:#000}.grid li .more-info{-webkit-transition:all .2s cubic-bezier(.17,.67,.83,.67);-o-transition:all .2s cubic-bezier(.17,.67,.83,.67);transition:all .2s cubic-bezier(.17,.67,.83,.67);background-color:#f16b1d;opacity:0;color:#fff;position:absolute;overflow:hidden;top:0;z-index:3;margin:auto;height:100%;width:95%;padding:5%}@media (min-width:768px){.grid li .more-info{width:95%}}@media (min-width:992px){.grid li .more-info{width:100%}}@media (min-width:1200px){.grid li .more-info{width:100%}}.grid li .more-info h3,.grid li .more-info h4{color:#fff;margin-top:0}.no-cssanimations .grid li,.no-js .grid li{opacity:1}.grid.effect-1 li.animate{-webkit-animation:a .65s ease forwards;-o-animation:a .65s ease forwards;animation:a .65s ease forwards}@-webkit-keyframes a{to{opacity:1}}@-o-keyframes a{to{opacity:1}}@keyframes a{to{opacity:1}}.grid.effect-2 li.animate{-webkit-transform:translateY(200px);-o-transform:translateY(200px);transform:translateY(200px);-webkit-animation:b .65s ease forwards;-o-animation:b .65s ease forwards;animation:b .65s ease forwards}@-webkit-keyframes b{to{-webkit-transform:translateY(0);opacity:1}}@-o-keyframes b{to{-webkit-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes b{to{-webkit-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);opacity:1}}.grid.effect-3 li.animate{-webkit-transform:scale(.6);-o-transform:scale(.6);transform:scale(.6);-webkit-animation:c .65s ease-in-out forwards;-o-animation:c .65s ease-in-out forwards;animation:c .65s ease-in-out forwards}@-webkit-keyframes c{to{-webkit-transform:scale(1);opacity:1}}@-o-keyframes c{to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}@keyframes c{to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}.grid.effect-4{-webkit-perspective:1300px;perspective:1300px}.grid.effect-4 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(400px) translateY(300px) rotateX(-90deg);transform:translateZ(400px) translateY(300px) rotateX(-90deg);-webkit-animation:d .8s ease-in-out forwards;-o-animation:d .8s ease-in-out forwards;animation:d .8s ease-in-out forwards}@-webkit-keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}@-o-keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}@keyframes d{to{-webkit-transform:translateZ(0) translateY(0) rotateX(0deg);transform:translateZ(0) translateY(0) rotateX(0deg);opacity:1}}.grid.effect-5{-webkit-perspective:1300px;perspective:1300px}.grid.effect-5 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:50% 50% -300px;-o-transform-origin:50% 50% -300px;transform-origin:50% 50% -300px;-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg);-webkit-animation:e .8s ease-in-out forwards;-o-animation:e .8s ease-in-out forwards;animation:e .8s ease-in-out forwards}.grid.effect-6{-webkit-perspective:1300px;perspective:1300px}.grid.effect-6 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-transform:rotateX(-80deg);transform:rotateX(-80deg);-webkit-animation:e .8s ease-in-out forwards;-o-animation:e .8s ease-in-out forwards;animation:e .8s ease-in-out forwards}@-webkit-keyframes e{to{-webkit-transform:rotateX(0deg);opacity:1}}@-o-keyframes e{to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes e{to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.grid.effect-7{-webkit-perspective:1300px;perspective:1300px}.grid.effect-7 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg);-webkit-animation:f .8s ease-in-out forwards;-o-animation:f .8s ease-in-out forwards;animation:f .8s ease-in-out forwards}@-webkit-keyframes f{to{-webkit-transform:rotateY(0deg);opacity:1}}@-o-keyframes f{to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@keyframes f{to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}.grid.effect-8{-webkit-perspective:1300px;perspective:1300px}.grid.effect-8 li.animate{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:scale(.4);-o-transform:scale(.4);transform:scale(.4);-webkit-animation:g .8s ease-in forwards;-o-animation:g .8s ease-in forwards;animation:g .8s ease-in forwards}@-webkit-keyframes g{70%{-webkit-transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out}to{-webkit-transform:scale(1);opacity:1}}@-o-keyframes g{70%{-webkit-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out;-o-animation-timing-function:ease-out;animation-timing-function:ease-out}to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}@keyframes g{70%{-webkit-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1);opacity:.8;-webkit-animation-timing-function:ease-out;-o-animation-timing-function:ease-out;animation-timing-function:ease-out}to{-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);opacity:1}}.notifications{position:fixed;z-index:4}.notifications .fa-times{color:#fff;opacity:1}.notifications .close{padding-left:10px;padding-top:1px;opacity:1;font-size:20px}.notifications.top-right{right:10px;top:50px}.notifications.top-left{left:10px;top:50px}.notifications.bottom-left{left:10px;bottom:50px}.notifications.bottom-right{right:10px;bottom:50px}.notifications>div{position:relative;margin:5px 0}#material .cards{box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12);border-radius:2px}.fixed{position:fixed}.vertical-align{position:relative;top:50%;-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#scroll-arrow{position:relative;float:right;line-height:55px;height:55px;width:220px;display:block;padding:0 15px;margin-top:25px}#scroll-arrow .text{text-transform:uppercase;color:#dbad6f;font-size:18px;z-index:2;text-decoration:underline;-webkit-transition:color .3s;-o-transition:color .3s;transition:color .3s}#scroll-arrow .block,#scroll-arrow .text{position:absolute;vertical-align:middle;display:inline-block;font-weight:100}#scroll-arrow .block{z-index:1;right:0;padding-right:15px;width:65px;height:55px;background-color:#dbad6f;color:#fff;font-size:30px;text-align:center;text-align:right;-webkit-transition:width .3s;-o-transition:width .3s;transition:width .3s}#scroll-arrow:hover .text{color:#fff;text-decoration:none}#scroll-arrow:hover .block{width:100%}.arrow-up{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid red}.arrow-down{width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid red}.arrow-right{width:0;height:0;border-top:60px solid transparent;border-bottom:60px solid transparent;border-left:60px solid red}.arrow-left{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid red}.font-bold{font-weight:700}.font-light{font-weight:300}.font-p{color:#333}.font-primary{color:#f16b1d}.font-white{color:#fff}.font-off-white{color:#ecf0f1}.font-blue{color:#3498db}.font-yellow{color:#f1c40f}.font-purple{color:#9b59b6}.font-green{color:#2ecc71}.font-blue-green{color:#1abc9c}.font-red{color:#e74c3c}.font-orange{color:#e67e22}.font-concrete{color:#95a5a6}.background-p{background-color:#333}.background-primary{background-color:#f16b1d}.background-white{background-color:#fff}.background-off-white{background-color:#ecf0f1}.background-blue{background-color:#3498db}.background-yellow{background-color:#f1c40f}.background-purple{background-color:#9b59b6}.background-green{background-color:#2ecc71}.background-blue-green{background-color:#1abc9c}.background-red{background-color:#e74c3c}.background-orange{background-color:#e67e22}.background-concrete{background-color:#95a5a6}#transition .default{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}#transition .trans-hide{opacity:0;height:0;margin:0;padding:0}#transition .trans-hide:after,#transition .trans-hide:before{content:" ";display:table}#transition .trans-hide:after{clear:both}h1{font-size:32.8px}@media (min-width:768px){h1{font-size:36.9px}}@media (min-width:992px){h1{font-size:38.95px}}@media (min-width:1200px){h1{font-size:41px}}h2{font-size:27.2px}@media (min-width:768px){h2{font-size:30.6px}}@media (min-width:992px){h2{font-size:32.3px}}@media (min-width:1200px){h2{font-size:34px}}h3{font-size:22.4px}@media (min-width:768px){h3{font-size:25.2px}}@media (min-width:992px){h3{font-size:26.6px}}@media (min-width:1200px){h3{font-size:28px}}h4{font-size:16px}@media (min-width:768px){h4{font-size:18px}}@media (min-width:992px){h4{font-size:19px}}@media (min-width:1200px){h4{font-size:20px}}h5{font-size:12.8px}@media (min-width:768px){h5{font-size:14.4px}}@media (min-width:992px){h5{font-size:15.2px}}@media (min-width:1200px){h5{font-size:16px}}@media print{.container{width:100%;margin-left:10px;margin-right:10px}.notifications,.tooltip,[data-toggle*=tooltip],footer,header,img:after{display:none!important}.page-molecule h1#molecule-name{font-size:22px!important;padding-left:0!important;z-index:3;position:relative}.page-molecule h1#molecule-name:before{content:"Pitt Quantum Repository - "}.page-molecule h1#molecule-name .small{padding-top:5px;display:none}.page-molecule h1#molecule-name #print-molecule,.page-molecule h1#molecule-name #reset-molecule,.page-molecule h1#molecule-name #rotationSwitch{display:none}.page-molecule #molecule-properties .molecule-data,.page-molecule #molecule-properties .molecule-links,.page-molecule #molecule-properties .molecule-qr-code,.page-molecule #molecule-properties .molecule-switchview,.page-molecule #molecule-properties .panel-body,.page-molecule #molecule-properties .properties-view-options,.page-molecule #molecule-properties .tooltip-inner,.page-molecule h1#molecule-name .qr-code-icon{display:none!important}.page-molecule #molecule-properties a:link:after,.page-molecule #molecule-properties a:visited:after{content:""}.page-molecule #molecule-properties .molecule-tags li{margin-bottom:2px;margin-top:2px}.page-molecule #molecule-properties .molecule-tags a span{border:none!important}.page-molecule #molecule-properties .molecule-tags a:hover{text-decoration:none}.page-molecule #molecule-properties .molecule-tags a:hover span{color:#f16b1d;background-color:#fff}.page-molecule #molecule-properties .panel,.page-molecule #molecule-properties .panel-default,.page-molecule #molecule-properties .panel-heading{border:none;padding:0}.page-molecule #molecule-properties h2{font-size:21px;margin-bottom:0;padding-bottom:0}.page-molecule #molecule-properties h2 .properties-view-options{font-size:12px}.page-molecule #molecule-properties table{border:none}.page-molecule #molecule-properties table tr td:first-of-type{font-weight:700}.page-molecule #molecule-properties table tbody tr td{text-overflow:ellipsis;word-wrap:break-word;padding:4px;font-size:16px}.page-molecule #molecule-viewer canvas,.page-molecule #molecule-viewer div{height:250px;display:none}.page-molecule .svg-wrapper{position:relative;margin-bottom:-75px;margin-top:-75px;padding:0}.page-molecule .svg-wrapper img{height:500px;z-index:-100}.page-molecule #qr-print-wrapper{position:absolute;top:65px;left:28px}.page-molecule #qr-print-wrapper img{height:75px;z-index:10}}.alert-feedback{border-color:#b2dfdb;background-color:#5f9ea0;border-color:#7fb1b3;color:#e0f2f1}.alert-feedback hr{border-top-color:#a0d8d3;border-top-color:#6fa8a9}.alert-feedback .alert-link{color:#bce3e1}.alert-success{background-color:#9ad2d1;border-color:#bde2e1;color:#316f6e}.alert-success hr{border-top-color:#acdad9}.alert-success .alert-link{color:#224b4b}@media (min-width:992px){.dropdown-menu{-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;opacity:0;z-index:-1;display:block}.open .dropdown-menu{opacity:1;z-index:1}}nav{background:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form,nav .dropdown-menu,nav.navbar{border:none}.pqr-form .input-group{width:100%;padding-bottom:1.5em}.pqr-form .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}.pqr-form .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}.pqr-form .input-wrapper .input-field:focus{outline:none}.pqr-form .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.pqr-form .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.pqr-form .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}.pqr-form .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}.pqr-form .input--filled .input-label,.pqr-form .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}.pqr-form .input--filled .input-label-content,.pqr-form .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.pqr-form .input--filled .input-field,.pqr-form .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}.pqr-form .input--filled input::-webkit-input-placeholder,.pqr-form .input--filled textarea::-webkit-input-placeholder{color:#ddd}.pqr-form .input--filled input::-moz-placeholder,.pqr-form .input--filled textarea::-moz-placeholder{color:#ddd}.pqr-form .input--filled input:-ms-input-placeholder,.pqr-form .input--filled textarea:-ms-input-placeholder{color:#ddd}.pqr-form .input--filled input::placeholder,.pqr-form .input--filled textarea::placeholder{color:#ddd}.pqr-form input::-webkit-input-placeholder,.pqr-form textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input::-moz-placeholder,.pqr-form textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input:-ms-input-placeholder,.pqr-form textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form input::placeholder,.pqr-form textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}.pqr-form .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}.pqr-form .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.pqr-form .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}.pqr-form .inverse.input-wrapper input::-webkit-input-placeholder,.pqr-form .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input::-moz-placeholder,.pqr-form .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input:-ms-input-placeholder,.pqr-form .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}.pqr-form .inverse.input-wrapper input::placeholder,.pqr-form .inverse.input-wrapper textarea::placeholder{color:#ddd}form#form-contact .input-group{width:100%;padding-bottom:1.5em}form#form-contact .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}form#form-contact .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}form#form-contact .input-wrapper .input-field:focus{outline:none}form#form-contact .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form#form-contact .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form#form-contact .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}form#form-contact .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}form#form-contact .input--filled .input-label,form#form-contact .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .input--filled .input-label-content,form#form-contact .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .input--filled .input-field,form#form-contact .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .input--filled input::-webkit-input-placeholder,form#form-contact .input--filled textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .input--filled input::-moz-placeholder,form#form-contact .input--filled textarea::-moz-placeholder{color:#ddd}form#form-contact .input--filled input:-ms-input-placeholder,form#form-contact .input--filled textarea:-ms-input-placeholder{color:#ddd}form#form-contact .input--filled input::placeholder,form#form-contact .input--filled textarea::placeholder{color:#ddd}form#form-contact input::-webkit-input-placeholder,form#form-contact textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input::-moz-placeholder,form#form-contact textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input:-ms-input-placeholder,form#form-contact textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact input::placeholder,form#form-contact textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form#form-contact .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .inverse.input-wrapper input::-webkit-input-placeholder,form#form-contact .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input::-moz-placeholder,form#form-contact .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input:-ms-input-placeholder,form#form-contact .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}form#form-contact .inverse.input-wrapper input::placeholder,form#form-contact .inverse.input-wrapper textarea::placeholder{color:#ddd}form#form-contact .input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form#form-contact .input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form#form-contact .input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form#form-contact .input-wrapper input::-webkit-input-placeholder,form#form-contact .input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form#form-contact .input-wrapper input::-moz-placeholder,form#form-contact .input-wrapper textarea::-moz-placeholder{color:#ddd}form#form-contact .input-wrapper input:-ms-input-placeholder,form#form-contact .input-wrapper textarea:-ms-input-placeholder{color:#ddd}form#form-contact .input-wrapper input::placeholder,form#form-contact .input-wrapper textarea::placeholder{color:#ddd}form#form-contact h3{padding-bottom:20px}form.autocomplete-search-form .input-group{width:100%;padding-bottom:1.5em}form.autocomplete-search-form .input-wrapper{position:relative;z-index:1;display:inline-block;width:100%;vertical-align:top;font-weight:700}form.autocomplete-search-form .input-wrapper .input-field{position:relative;display:block;float:right;padding:.8em;width:60%;border:none;border-radius:0;background:#f0f0f0;color:#888;font-weight:400;-webkit-appearance:none;width:100%;background-color:#d0d1d0;border:2px solid transparent;-webkit-transition:background-color .25s,border-color .25s;-o-transition:background-color .25s,border-color .25s;transition:background-color .25s,border-color .25s;font-weight:700;padding-left:3em}form.autocomplete-search-form .input-wrapper .input-field:focus{outline:none}form.autocomplete-search-form .input-wrapper .input-label{display:inline-block;float:right;padding:0 1em;width:40%;color:#696969;font-weight:700;font-size:70.25%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;text-align:left;position:absolute;bottom:80%;pointer-events:none;overflow:hidden;padding:0 1.25em;-webkit-transform:translate3d(0,3em,0);transform:translate3d(0,3em,0);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form.autocomplete-search-form .input-wrapper .input-label .input-label-content{position:relative;display:block;padding:1.6em 0;width:100%;color:#8b8c8b;padding:.5em 0;padding-bottom:1px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s, -o-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s, -o-transform .25s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}form.autocomplete-search-form .input-wrapper .input-label .input-label-content .fa{font-size:2em;margin-right:10px;color:#999}form.autocomplete-search-form .input-wrapper .input-label .input-label-content:after{content:attr(data-content);position:absolute;font-weight:800;bottom:80%;left:0;height:100%;width:100%;color:#9ad2d1;padding:.15em 0;text-transform:uppercase;letter-spacing:1px;font-size:.85em}form.autocomplete-search-form .input--filled .input-label,form.autocomplete-search-form .input-field:focus+.input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form.autocomplete-search-form .input--filled .input-label-content,form.autocomplete-search-form .input-field:focus+.input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form.autocomplete-search-form .input--filled .input-field,form.autocomplete-search-form .input-field:focus+.input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form.autocomplete-search-form .input--filled input::-webkit-input-placeholder,form.autocomplete-search-form .input--filled textarea::-webkit-input-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input::-moz-placeholder,form.autocomplete-search-form .input--filled textarea::-moz-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input:-ms-input-placeholder,form.autocomplete-search-form .input--filled textarea:-ms-input-placeholder{color:#ddd}form.autocomplete-search-form .input--filled input::placeholder,form.autocomplete-search-form .input--filled textarea::placeholder{color:#ddd}form.autocomplete-search-form input::-webkit-input-placeholder,form.autocomplete-search-form textarea::-webkit-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input::-moz-placeholder,form.autocomplete-search-form textarea::-moz-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input:-ms-input-placeholder,form.autocomplete-search-form textarea:-ms-input-placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form input::placeholder,form.autocomplete-search-form textarea::placeholder{-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease;color:#999}form.autocomplete-search-form .inverse.input-wrapper .input-label{-webkit-transform:translateZ(0);transform:translateZ(0)}form.autocomplete-search-form .inverse.input-wrapper .input-label .input-label-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}form.autocomplete-search-form .inverse.input-wrapper .input-field{background-color:#fff;border-color:#9ad2d1;padding-left:1.25em}form.autocomplete-search-form .inverse.input-wrapper input::-webkit-input-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::-webkit-input-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input::-moz-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::-moz-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input:-ms-input-placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea:-ms-input-placeholder{color:#ddd}form.autocomplete-search-form .inverse.input-wrapper input::placeholder,form.autocomplete-search-form .inverse.input-wrapper textarea::placeholder{color:#ddd}form.autocomplete-search-form .input-wrapper{margin:1em}form.autocomplete-search-form .search.input-group{width:100%;max-width:1000px}@media (min-width:768px){form.autocomplete-search-form .search.input-group{width:90%}}@media (min-width:992px){form.autocomplete-search-form .search.input-group{width:90%}}@media (min-width:1200px){form.autocomplete-search-form .search.input-group{width:90%}}form.autocomplete-search-form .search.input-group .twitter-typeahead{width:100%;display:block!important}form.autocomplete-search-form .tt-menu{position:absolute!important;top:100%;display:block;margin-left:auto;margin-right:auto;width:100%;max-width:1000px}form.autocomplete-search-form .tt-menu .autocomplete-results{display:block;margin-left:auto;margin-right:auto;position:absolute;width:100%;z-index:10;top:65px;border:1px solid #dcdcdc;box-shadow:2px 2px 5px #f9f9f9}form.autocomplete-search-form .tt-menu .autocomplete-results:before{position:absolute;pointer-events:none;border:solid transparent;bottom:100%;content:"";height:0;width:0;border-bottom-color:#fff;border-width:9px;margin-left:-9px;left:50px;top:-18px}form.autocomplete-search-form .tt-menu .autocomplete-results.no-before:before{content:none}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;text-align:left;border-bottom:1px solid #9ad2d1;height:75px;background-color:#fff;padding:10px}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h4{color:#9ad2d1;margin-top:0;margin-bottom:0}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion h4{color:#000}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion img{max-height:50px;display:block;margin-left:auto;margin-right:auto}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover{background-color:#9ad2d1}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor h4,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion.tt-cursor i,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover h3,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover h4,form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion:hover i{color:#fff}@media (max-width:991px){form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion{height:150px;text-align:center}form.autocomplete-search-form .tt-menu .autocomplete-results div.suggestion a:hover{text-decoration:none}}color::-moz-selection{background:#3498db;color:#fff}::-moz-selection{background:#3498db;color:#fff}::selection{background:#3498db;color:#fff}body,html{overflow-x:hidden}body a.btn,body button.btn{-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color}body a,body a.btn,body button.btn{-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}body a{-webkit-transition-property:color;-o-transition-property:color;transition-property:color}body nav .navbar-brand>img{margin-top:-10px;padding-left:5px}@media (min-width:768px){body nav .dropdown-menu{min-width:350px}}@media (max-width:767px){body nav .navbar-collapse li{padding-left:5%}}body #main{min-height:800px}body #browse-banner,body #home-banner{margin-top:-35px}body #splash-search{margin-top:10px}@media (max-width:991px){body #splash-search{margin-top:0}body #splash-search h2{font-size:22px}body #splash-search p{font-size:14px}}body .page-home .other-content .fa{color:#f16b1d}body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{margin-top:225px;height:200px}@media (min-width:768px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{margin-top:175px;height:250px}}@media (min-width:992px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{height:350px}}@media (min-width:1200px){body .page-home #molecule-viewer canvas,body .page-home #molecule-viewer div{height:400px}}body .page-home .the-news a.list-group-item{-webkit-transition:background-color .25s ease-in-out;-o-transition:background-color .25s ease-in-out;transition:background-color .25s ease-in-out;background:#5f9ea0;color:#fff}body .page-home .the-news a.list-group-item i.fa{color:#fff}body .page-home .the-news a.list-group-item:hover{background-color:#fff;color:#5f9ea0}body .page-home .the-news a.list-group-item:hover i.fa{color:#5f9ea0}body .page-molecule h1#molecule-name{font-size:23px;padding-left:10px}@media (min-width:768px){body .page-molecule h1#molecule-name{font-size:30px}}@media (min-width:992px){body .page-molecule h1#molecule-name{font-size:32px}}@media (min-width:1200px){body .page-molecule h1#molecule-name{font-size:36px}}body .page-molecule h1#molecule-name .small{padding-top:5px}body .page-molecule #molecule-properties .panel{-webkit-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}body .page-molecule #molecule-properties .molecule-tags li{margin-bottom:2px;margin-top:2px}body .page-molecule #molecule-properties .molecule-tags a span{border:1px solid #f16b1d;-webkit-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}body .page-molecule #molecule-properties .molecule-tags a:hover{text-decoration:none}body .page-molecule #molecule-properties .molecule-tags a:hover span{color:#f16b1d;background-color:#fff}body .page-molecule #molecule-properties .tooltip-inner{width:150px;max-width:400px}body .page-molecule #molecule-properties h2{font-size:21px;margin-bottom:0;padding-bottom:0}@media (min-width:768px){body .page-molecule #molecule-properties h2{font-size:28px}}@media (min-width:992px){body .page-molecule #molecule-properties h2{font-size:24px;margin-top:0}}@media (min-width:1200px){body .page-molecule #molecule-properties h2{font-size:28px}}body .page-molecule #molecule-properties h2 .properties-view-options{font-size:12px}body .page-molecule #molecule-properties table tr td:first-of-type{font-weight:700}body .page-molecule #molecule-properties table tbody tr td{text-overflow:ellipsis;word-wrap:break-word}body .page-molecule #molecule-properties table tbody tr>td:first-child{min-width:150px}body .page-molecule #molecule-properties table tbody .molecule-alt-names ul{max-height:200px;overflow-y:scroll;overflow-x:scroll}body .page-molecule #molecule-properties .molecule-switchview .mobile .btn{width:100%;margin-bottom:10px}body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:250px}@media (min-width:768px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:350px}}@media (min-width:992px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:400px}}@media (min-width:1200px){body .page-molecule #molecule-viewer canvas,body .page-molecule #molecule-viewer div{height:500px}}body .page-browse #splash-search{margin-top:10px}body .page-browse #splash-search #num-compounds{padding-top:20px}body .page-browse #splash-search #num-compounds .number{color:#d9534f}body .page-browse nav.pagination{width:100%}body .page-browse nav.pagination #molecule-ajax-loader{width:80%}body .page-browse nav.pagination .cogs{width:4.5em;height:4.5em;position:relative;display:block;margin-left:auto;margin-right:auto}body .page-browse nav.pagination .cogs i{font-size:2em;color:#f16b1d}body .page-browse nav.pagination .cogs i:nth-child(2){font-size:3em;top:.2em;left:.125em;-webkit-animation-direction:reverse;-o-animation-direction:reverse;animation-direction:reverse}body .page-browse nav.pagination .cogs i:nth-child(3){font-size:1.5em;top:.1em;left:.85em}body .page-browse .meta-data{text-align:center}body .page-contact address{box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12);border-radius:2px;padding:15px}body footer{background-image:-webkit-linear-gradient(top,#5f9ea0,#568e90);background-image:-webkit-linear-gradient(top,#5f9ea0 0,#568e90);background-image:-o-linear-gradient(top,#5f9ea0 0,#568e90);background-image:linear-gradient(180deg,#5f9ea0 0,#568e90);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f9ea0',endColorstr='#ff568e90',GradientType=0);padding-top:25px;padding-bottom:10px;margin-top:10px;color:#fff}@media (max-width:991px){body footer{text-align:center!important}}body footer a{color:#fff;font-weight:700}body footer a:hover{color:#fff}body footer .footer-brand{font-size:25px;padding-right:10px}body footer .footer-map{display:inline-block}body footer .footer-map li{padding-left:15px;text-transform:uppercase}body footer .footer-social .fa{font-size:1em;min-height:1.5em;-webkit-transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important;-o-transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important;transition:font-size .3s cubic-bezier(.68,-.55,.27,1.55)!important}@media (min-width:768px){body footer .footer-social .fa{font-size:2em;padding-right:5px;padding-left:5px}}@media (min-width:992px){body footer .footer-social .fa{font-size:2.5em;padding-right:10px;padding-left:10px}}body footer .footer-social .fa:hover{color:#b3b3b3}.feedback-messages-container{margin-bottom:22px}#qrcodemodal #qrcode img{max-width:100%;height:auto;display:block;margin-left:auto;margin-right:auto} +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvcnMvZ3JpZC1sYXlvdXQubGVzcyIsImJvb3RzdHJhcC9taXhpbnMvZ3JpZC5sZXNzIiwibWFpbi5jc3MiLCJib290c3RyYXAvbWl4aW5zL2NlbnRlci1ibG9jay5sZXNzIiwiYm9vdHN0cmFwL21peGlucy92ZW5kb3ItcHJlZml4ZXMubGVzcyIsIm1pc2MvaGVscGVycy5sZXNzIiwidmVuZG9ycy9ib290c3RyYXAtbm90aWZ5Lmxlc3MiLCJtaXNjL3V0aWxzLmxlc3MiLCJtaXNjL2ZvbnQtaGVscGVycy5sZXNzIiwibWlzYy90cmFuc2l0aW9ucy5sZXNzIiwiYm9vdHN0cmFwL21peGlucy9jbGVhcmZpeC5sZXNzIiwibWlzYy90eXBvZ3JhcGh5Lmxlc3MiLCJtaXNjL3ByaW50Lmxlc3MiLCJib290c3RyYXAvbWl4aW5zL2FsZXJ0cy5sZXNzIiwibWlzYy9fYm9vdHN0cmFwLmxlc3MiLCJjb21wb25lbnRzL2Zvcm1zLmxlc3MiLCJtYWluLmxlc3MiLCJib290c3RyYXAvdHlwZS5sZXNzIiwiYm9vdHN0cmFwL21peGlucy9ncmFkaWVudHMubGVzcyIsImJvb3RzdHJhcC9taXhpbnMvaW1hZ2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUVDLGdCQUFBLGlCQUNBLFNBQ0EsQ0FFRCxTQ2tCRSxXQUFBLGtCQXlFQSxlQUNBLGFEdkZELGNBQUEsV0FDQSxTQUdBLENFaUJBLHlCRDBGRCxTQTNFSSxXQUFBLFNBQ0EsQ0NYRCxDQUNGLHlCRG9GRCxTQS9DSSxXQUFBLGtCQUNBLENDakNELENBQ0YsMEJEOEVELFNBbkJJLFdBQUEsU0FDQSxDQ3ZERCxDRjVCRix5Q0FFRSxTQUFBLENBakJILFdBcUJFLGFBQUEsWUFDQSxjQUNBLGNBQ0EsQ0FFQSxpQkFDQyxvQkFBQSxDQTNCSCxhR0hFLGNBQUEsaUJBQ0Esa0JIbUNBLGFBQUEsV0FDQSxDQWxDRixZQTBDRSxVQUFBLENBMUNGLG9CSXdMRSx5REFBQSxvREp6SUEsQUl5SUEsaURKeklB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IDY5ZW07XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMzBweCBhdXRvO1xuXHRwYWRkaW5nOiAwO1xufVxuLmdyaWQgbGkge1xuXHQubWFrZS14cy1jb2x1bW4oMTIpO1xuXHQubWFrZS1zbS1jb2x1bW4oNik7XG5cdC5tYWtlLW1kLWNvbHVtbig0KTtcblx0Lm1ha2UtbGctY29sdW1uKDMpO1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0b3BhY2l0eTogMDtcblxuXHQvL1Zpc2libGUgc3RhdGUgc2hvdyBpdGVtXG5cdCYuc2hvd24ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0Jjpob3ZlciB7XG5cdFx0Lm1vcmUtaW5mbyB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXHRhIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cblx0aW1nIHtcblx0XHQuY2VudGVyLWJsb2NrKCk7XG5cdFx0Ly8gLmltZy1yZXNwb25zaXZlKCk7XG5cdFx0aGVpZ2h0OiAyMDBweDsgXG5cdFx0d2lkdGg6IDIwMHB4OyBcblxuXHR9XG5cdC8vTW9sZWN1bGUgTmFtZVxuXHRoMyB7XG5cdH1cblx0Ly9Nb2xlY3VsZSBGb3JtdWxhXG5cdGg0IHtcblx0XHRjb2xvcjogYmxhY2s7XG5cdH1cblx0Ly9Pbmx5IHNob3cgb24gaG92ZXJcblx0Lm1vcmUtaW5mbyB7XG5cdFx0LnRyYW5zaXRpb24oYWxsIC4ycyBjdWJpYy1iZXppZXIoLjE3LCAuNjcsIC44MywgLjY3KSk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0b3A6IDA7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdCNyZXNwb25zaXZlLWhlbHBlcnMgLnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKHdpZHRoLCA5NSUsIDk1JSwgMTAwJSwgMTAwJSk7XG5cdFx0cGFkZGluZzogNSU7XG5cblx0XHRoMywgaDQge1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdFx0dGFibGUge1xuXHRcdH1cblx0fVxufVxuLy9CYWNrd2FyZHMgY29tcGF0YWJpbGl0eSAoU2hvdyB0aGUgaXRlbXMgYWx3YXlzKVxuLm5vLWpzIC5ncmlkIGxpLCAubm8tY3NzYW5pbWF0aW9ucyAuZ3JpZCBsaSB7XG5cdG9wYWNpdHk6IDE7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogR3JpZCBFZmZlY3RzIGZyb20gXG4gKiBcdGh0dHA6Ly90eW1wYW51cy5uZXQvRGV2ZWxvcG1lbnQvR3JpZExvYWRpbmdFZmZlY3RzL2luZGV4NC5odG1sXG4gKiBcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIEVmZmVjdCAxOiBvcGFjaXR5ICovXG4uZ3JpZC5lZmZlY3QtMSBsaS5hbmltYXRlIHtcblx0LXdlYmtpdC1hbmltYXRpb246IGZhZGVJbiAwLjY1cyBlYXNlIGZvcndhcmRzO1xuXHRhbmltYXRpb246IGZhZGVJbiAwLjY1cyBlYXNlIGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4vKiBFZmZlY3QgMjogTW92ZSBVcCAqL1xuLmdyaWQuZWZmZWN0LTIgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMHB4KTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMHB4KTtcblx0LXdlYmtpdC1hbmltYXRpb246IG1vdmVVcCAwLjY1cyBlYXNlIGZvcndhcmRzO1xuXHRhbmltYXRpb246IG1vdmVVcCAwLjY1cyBlYXNlIGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIG1vdmVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIG1vdmVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgMzogU2NhbGUgdXAgKi9cbi5ncmlkLmVmZmVjdC0zIGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC42KTtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogc2NhbGVVcCAwLjY1cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBzY2FsZVVwIDAuNjVzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNjYWxlVXAge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIEVmZmVjdCA0OiBmYWxsIHBlcnNwZWN0aXZlICovXG4uZ3JpZC5lZmZlY3QtNCB7XG5cdC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcblx0cGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC00IGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDQwMHB4KSB0cmFuc2xhdGVZKDMwMHB4KSByb3RhdGVYKC05MGRlZyk7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWig0MDBweCkgdHJhbnNsYXRlWSgzMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBmYWxsUGVyc3BlY3RpdmUgLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhbGxQZXJzcGVjdGl2ZSB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpIHRyYW5zbGF0ZVkoMHB4KSByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgZmFsbFBlcnNwZWN0aXZlIHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgNTogZmx5IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC01IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTUgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIC0zMDBweDtcblx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAtMzAwcHg7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBmbHkgLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuXHRhbmltYXRpb246IGZseSAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmx5IHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgZmx5IHtcblx0MCUge1xuXHR9XG5cdDEwMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIEVmZmVjdCA2OiBmbGlwIChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC02IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTYgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcblx0dHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKC04MGRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlWCgtODBkZWcpO1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZmxpcCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbjogZmxpcCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGZsaXAge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLyogRWZmZWN0IDc6IGhlbGl4IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC03IHtcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuXHRwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTcgbGkuYW5pbWF0ZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcblx0LXdlYmtpdC1hbmltYXRpb246IGhlbGl4IC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBoZWxpeCAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgaGVsaXgge1xuXHQwJSB7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuQGtleWZyYW1lcyBoZWxpeCB7XG5cdDAlIHtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKiBFZmZlY3QgODogICovXG4uZ3JpZC5lZmZlY3QtOCB7XG5cdC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcblx0cGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC04IGxpLmFuaW1hdGUge1xuXHQtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBwb3BVcCAuOHMgZWFzZS1pbiBmb3J3YXJkcztcblx0YW5pbWF0aW9uOiBwb3BVcCAuOHMgZWFzZS1pbiBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwb3BVcCB7XG5cdDAlIHtcblx0fVxuXHQ3MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuXHRcdG9wYWNpdHk6IC44O1xuXHRcdC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbkBrZXlmcmFtZXMgcG9wVXAge1xuXHQwJSB7XG5cdH1cblx0NzAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cdFx0b3BhY2l0eTogLjg7XG5cdFx0LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59IiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICAoQGd1dHRlciAvIC0yKTtcbiAgbWFyZ2luLXJpZ2h0OiAoQGd1dHRlciAvIC0yKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXG4ubWFrZS14cy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBzbWFsbCBjb2x1bW5zXG4ubWFrZS1zbS1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBtZWRpdW0gY29sdW1uc1xuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xuLm1ha2UtbGctY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuIiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xufVxuLmdyaWQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDMwcHggYXV0bztcbiAgcGFkZGluZzogMDtcbn1cbi5ncmlkIGxpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICBvcGFjaXR5OiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ncmlkIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmdyaWQgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmdyaWQgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cbi5ncmlkIGxpLnNob3duIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5ncmlkIGxpOmhvdmVyIC5tb3JlLWluZm8ge1xuICBvcGFjaXR5OiAxO1xufVxuLmdyaWQgbGkgYSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5ncmlkIGxpIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uZ3JpZCBsaSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgaGVpZ2h0OiAyMDBweDtcbiAgd2lkdGg6IDIwMHB4O1xufVxuLmdyaWQgbGkgaDQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uZ3JpZCBsaSAubW9yZS1pbmZvIHtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC44MywgMC42Nyk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuODMsIDAuNjcpO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC44MywgMC42Nyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjE3LCAwLjY3LCAwLjgzLCAwLjY3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTA7XG4gIG1hcmdpbjogYXV0byBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA5NSU7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuICBwYWRkaW5nOiA1JTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZ3JpZCBsaSAubW9yZS1pbmZvIHtcbiAgICB3aWR0aDogOTUlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmdyaWQgbGkgLm1vcmUtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmdyaWQgbGkgLm1vcmUtaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5ncmlkIGxpIC5tb3JlLWluZm8gaDMsXG4uZ3JpZCBsaSAubW9yZS1pbmZvIGg0IHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLm5vLWpzIC5ncmlkIGxpLFxuLm5vLWNzc2FuaW1hdGlvbnMgLmdyaWQgbGkge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEdyaWQgRWZmZWN0cyBmcm9tIFxuICogXHRodHRwOi8vdHltcGFudXMubmV0L0RldmVsb3BtZW50L0dyaWRMb2FkaW5nRWZmZWN0cy9pbmRleDQuaHRtbFxuICogXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBFZmZlY3QgMTogb3BhY2l0eSAqL1xuLmdyaWQuZWZmZWN0LTEgbGkuYW5pbWF0ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYWRlSW4gMC42NXMgZWFzZSBmb3J3YXJkcztcbiAgYW5pbWF0aW9uOiBmYWRlSW4gMC42NXMgZWFzZSBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIEVmZmVjdCAyOiBNb3ZlIFVwICovXG4uZ3JpZC5lZmZlY3QtMiBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogbW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgbW92ZVVwIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBtb3ZlVXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDM6IFNjYWxlIHVwICovXG4uZ3JpZC5lZmZlY3QtMyBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNjYWxlVXAgMC42NXMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogc2NhbGVVcCAwLjY1cyBlYXNlLWluLW91dCBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzY2FsZVVwIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIEVmZmVjdCA0OiBmYWxsIHBlcnNwZWN0aXZlICovXG4uZ3JpZC5lZmZlY3QtNCB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcbiAgcGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC00IGxpLmFuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDQwMHB4KSB0cmFuc2xhdGVZKDMwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWig0MDBweCkgdHJhbnNsYXRlWSgzMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmFsbFBlcnNwZWN0aXZlIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFsbFBlcnNwZWN0aXZlIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMHB4KSB0cmFuc2xhdGVZKDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhbGxQZXJzcGVjdGl2ZSB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCkgdHJhbnNsYXRlWSgwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDU6IGZseSAoYmFzZWQgb24gaHR0cDovL2xhYi5oYWtpbS5zZS9zY3JvbGwtZWZmZWN0cy8gYnkgQGhha2ltZWwpICovXG4uZ3JpZC5lZmZlY3QtNSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDtcbiAgcGVyc3BlY3RpdmU6IDEzMDBweDtcbn1cbi5ncmlkLmVmZmVjdC01IGxpLmFuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAtMzAwcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgLTMwMHB4O1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgtMTgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmx5IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmx5IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmx5IHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHkge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDY6IGZsaXAgKGJhc2VkIG9uIGh0dHA6Ly9sYWIuaGFraW0uc2Uvc2Nyb2xsLWVmZmVjdHMvIGJ5IEBoYWtpbWVsKSAqL1xuLmdyaWQuZWZmZWN0LTYge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMzAwcHg7XG59XG4uZ3JpZC5lZmZlY3QtNiBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoLTgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKC04MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmbGlwIDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogZmxpcCAwLjhzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDc6IGhlbGl4IChiYXNlZCBvbiBodHRwOi8vbGFiLmhha2ltLnNlL3Njcm9sbC1lZmZlY3RzLyBieSBAaGFraW1lbCkgKi9cbi5ncmlkLmVmZmVjdC03IHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTMwMHB4O1xuICBwZXJzcGVjdGl2ZTogMTMwMHB4O1xufVxuLmdyaWQuZWZmZWN0LTcgbGkuYW5pbWF0ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGhlbGl4IDAuOHMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbjogaGVsaXggMC44cyBlYXNlLWluLW91dCBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBoZWxpeCB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgaGVsaXgge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogRWZmZWN0IDg6ICAqL1xuLmdyaWQuZWZmZWN0LTgge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMzAwcHg7XG59XG4uZ3JpZC5lZmZlY3QtOCBsaS5hbmltYXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcG9wVXAgMC44cyBlYXNlLWluIGZvcndhcmRzO1xuICBhbmltYXRpb246IHBvcFVwIDAuOHMgZWFzZS1pbiBmb3J3YXJkcztcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwb3BVcCB7XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgb3BhY2l0eTogLjg7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBwb3BVcCB7XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIG9wYWNpdHk6IC44O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyoqXG4gKiBCb290c3RyYXAgTm90aWZ5IFN0eWxlcyBcbiAqIFxuICogQHNpdGUgaHR0cHM6Ly9naXRodWIuY29tL2dvb2R5YmFnL2Jvb3RzdHJhcC1ub3RpZnlcbiAqL1xuLm5vdGlmaWNhdGlvbnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG59XG4ubm90aWZpY2F0aW9ucyAuZmEtdGltZXMge1xuICBjb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMTtcbn1cbi5ub3RpZmljYXRpb25zIC5jbG9zZSB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgb3BhY2l0eTogMS4wO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4vKiBQb3NpdGlvbmluZyAqL1xuLm5vdGlmaWNhdGlvbnMudG9wLXJpZ2h0IHtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogNTBweDtcbn1cbi5ub3RpZmljYXRpb25zLnRvcC1sZWZ0IHtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiA1MHB4O1xufVxuLm5vdGlmaWNhdGlvbnMuYm90dG9tLWxlZnQge1xuICBsZWZ0OiAxMHB4O1xuICBib3R0b206IDUwcHg7XG59XG4ubm90aWZpY2F0aW9ucy5ib3R0b20tcmlnaHQge1xuICByaWdodDogMTBweDtcbiAgYm90dG9tOiA1MHB4O1xufVxuLyogTm90aWZpY2F0aW9uIEVsZW1lbnQgKi9cbi5ub3RpZmljYXRpb25zID4gZGl2IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDVweCAwcHg7XG59XG4vKipcbiAqICBGb250IFNpemUgQ2xhc3NlcyA2IGxldmVscyB0byBhZGQgdG8ganMgZm9yIGdsb2JhbCBmb250LWFkanVzdG1lbnRcbiAqICAgIGZvbnQtIyAoMS02KVxuICpcbiAqL1xuI21hdGVyaWFsIC5jYXJkcyB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi8qKlxuICogTWlzY2VsbGVhbm91cyBMRVNTIGhlbHBlciBtaXhpbnNcbiAqIEBhdXRob3I6IEpvc2ggUm9nYW5cbiAqL1xuLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLnZlcnRpY2FsLWFsaWduIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbn1cbi52ZXJ0aWNhbC1hbGlnbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4vKipcbiAqIFJlc3BvbnNpdmUgdXRpbGl0aWVzIFxuICogIFxuICogXG4gKi9cbiNyZXNwb25zaXZlLWhlbHBlcnMge1xuICAvKipcblx0ICogTWl4aW4gdG8gYWxsb3cgdG8gc2V0IGFsbCBvZiB0aGUgcHJvcGVyIG1lZGlhIHNpemVzIGZvciBhIGhlaWdodFxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQHhzLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICogQHBhcmFtICB7SGVpZ2h0IFNpemV9IEBzbS1zaXplIFtUaGUgaGVpZ2h0IHlvdSB3YW50IGZvciB0aGlzIHNpemVdXG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAbWQtc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQGxnLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICovXG4gIC8qIFNtYWxsIGRldmljZXMgKG1vYmlsZSwgNzY4cHggYW5kIGRvd24pICovXG59XG4jc2Nyb2xsLWFycm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiA1NXB4O1xuICBoZWlnaHQ6IDU1cHg7XG4gIHdpZHRoOiAyMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgbWFyZ2luLXRvcDogMjVweDtcbn1cbiNzY3JvbGwtYXJyb3cgLnRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGNvbG9yOiAjZGJhZDZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgei1pbmRleDogMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMzAwbXM7XG4gIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zO1xufVxuI3Njcm9sbC1hcnJvdyAuYmxvY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICB3aWR0aDogNjVweDtcbiAgaGVpZ2h0OiA1NXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYmFkNmY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcztcbn1cbiNzY3JvbGwtYXJyb3c6aG92ZXIgLnRleHQge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiNzY3JvbGwtYXJyb3c6aG92ZXIgLmJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKipBcnJvdyBJY29ucyAqKi9cbi5hcnJvdy11cCB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA1cHggc29saWQgcmVkO1xufVxuLmFycm93LWRvd24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAyMHB4IHNvbGlkIHJlZDtcbn1cbi5hcnJvdy1yaWdodCB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDYwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDYwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA2MHB4IHNvbGlkIHJlZDtcbn1cbi5hcnJvdy1sZWZ0IHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHJlZDtcbn1cbi8qKlxuICpcdFZhcmlvdXMgZm9udCBoZWxwZXIgY2xhc3NlcyBmb3IgY29sb3JzIGFuZCBtb3JlXG4gKlxuICovXG4uZm9udC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uZm9udC1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uZm9udC1wIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4uZm9udC1wcmltYXJ5IHtcbiAgY29sb3I6ICNmMTZiMWQ7XG59XG4uZm9udC13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmZvbnQtb2ZmLXdoaXRlIHtcbiAgY29sb3I6ICNlY2YwZjE7XG59XG4uZm9udC1ibHVlIHtcbiAgY29sb3I6ICMzNDk4ZGI7XG59XG4uZm9udC15ZWxsb3cge1xuICBjb2xvcjogI2YxYzQwZjtcbn1cbi5mb250LXB1cnBsZSB7XG4gIGNvbG9yOiAjOWI1OWI2O1xufVxuLmZvbnQtZ3JlZW4ge1xuICBjb2xvcjogIzJlY2M3MTtcbn1cbi5mb250LWJsdWUtZ3JlZW4ge1xuICBjb2xvcjogIzFhYmM5Yztcbn1cbi5mb250LXJlZCB7XG4gIGNvbG9yOiAjZTc0YzNjO1xufVxuLmZvbnQtb3JhbmdlIHtcbiAgY29sb3I6ICNlNjdlMjI7XG59XG4uZm9udC1jb25jcmV0ZSB7XG4gIGNvbG9yOiAjOTVhNWE2O1xufVxuLmJhY2tncm91bmQtcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4uYmFja2dyb3VuZC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNmIxZDtcbn1cbi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5iYWNrZ3JvdW5kLW9mZi13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2YwZjE7XG59XG4uYmFja2dyb3VuZC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjtcbn1cbi5iYWNrZ3JvdW5kLXllbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWM0MGY7XG59XG4uYmFja2dyb3VuZC1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWI1OWI2O1xufVxuLmJhY2tncm91bmQtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxO1xufVxuLmJhY2tncm91bmQtYmx1ZS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYWJjOWM7XG59XG4uYmFja2dyb3VuZC1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc0YzNjO1xufVxuLmJhY2tncm91bmQtb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2N2UyMjtcbn1cbi5iYWNrZ3JvdW5kLWNvbmNyZXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk1YTVhNjtcbn1cbi8qKlxuICpcdFZhcmlvdXMgdHJhbnNpdGlvbnMgaGVscGVyc1xuICpcbiAqL1xuI3RyYW5zaXRpb24ge1xuICAvKipcblx0ICogSGVscGVyIGNsYXNzIHRvIGFkZCB0cmFuc2l0aW9uIGJhc2VkIGhpZGVzIFxuXHQgKi9cbn1cbiN0cmFuc2l0aW9uIC5kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGUge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmJlZm9yZSxcbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGU6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmJlZm9yZSxcbiN0cmFuc2l0aW9uIC50cmFucy1oaWRlOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuI3RyYW5zaXRpb24gLnRyYW5zLWhpZGU6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAzMi44cHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDM2LjlweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDM4Ljk1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDFweDtcbiAgfVxufVxuaDIge1xuICBmb250LXNpemU6IDI3LjJweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzAuNnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzIuM3B4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDM0cHg7XG4gIH1cbn1cbmgzIHtcbiAgZm9udC1zaXplOiAyMi40cHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDI1LjJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDI2LjZweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBoMyB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5oNCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuaDUge1xuICBmb250LXNpemU6IDEyLjhweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTQuNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTUuMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbi8qKlxuICogXHRTdHlsZXMgZm9yIHByaW50aW5nICBcbiAqIFxuICovXG5AbWVkaWEgcHJpbnQge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cbiAgaGVhZGVyLFxuICBmb290ZXIsXG4gIFtkYXRhLXRvZ2dsZSo9dG9vbHRpcF0sXG4gIGltZzphZnRlcixcbiAgLm5vdGlmaWNhdGlvbnMsXG4gIC50b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgaDEjbW9sZWN1bGUtbmFtZSB7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJQaXR0IFF1YW50dW0gUmVwb3NpdG9yeSAtIFwiO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUgLnNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgaDEjbW9sZWN1bGUtbmFtZSAjcm90YXRpb25Td2l0Y2gsXG4gIC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUgI3Jlc2V0LW1vbGVjdWxlLFxuICAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lICNwcmludC1tb2xlY3VsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIC5xci1jb2RlLWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAudG9vbHRpcC1pbm5lcixcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXN3aXRjaHZpZXcsXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5wcm9wZXJ0aWVzLXZpZXctb3B0aW9ucyxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLnBhbmVsLWJvZHksXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5tb2xlY3VsZS1saW5rcyxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXFyLWNvZGUsXG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5tb2xlY3VsZS1kYXRhIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgYTpsaW5rOmFmdGVyLFxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBhOnZpc2l0ZWQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYSBzcGFuIHtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAubW9sZWN1bGUtdGFncyBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciBzcGFuIHtcbiAgICBjb2xvcjogI2YxNmIxZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAucGFuZWwtZGVmYXVsdCxcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLnBhbmVsLFxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAucGFuZWwtaGVhZGluZyB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgaDIge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiAucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRyIHRkOmZpcnN0LW9mLXR5cGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAuc3ZnLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAtNzVweDtcbiAgICBtYXJnaW4tdG9wOiAtNzVweDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlIC5zdmctd3JhcHBlciBpbWcge1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgei1pbmRleDogLTEwMDtcbiAgfVxuICAucGFnZS1tb2xlY3VsZSAjcXItcHJpbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjVweDtcbiAgICBsZWZ0OiAyOHB4O1xuICB9XG4gIC5wYWdlLW1vbGVjdWxlICNxci1wcmludC13cmFwcGVyIGltZyB7XG4gICAgaGVpZ2h0OiA3NXB4O1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG59XG4vKipcbiAqICBCb290c3RyYXAgT3ZlcnJpZGVzIFxuICovXG4uYWxlcnQtZmVlZGJhY2sge1xuICBib3JkZXItY29sb3I6ICNCMkRGREI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZjllYTA7XG4gIGJvcmRlci1jb2xvcjogIzdmYjFiMztcbiAgY29sb3I6ICNFMEYyRjE7XG59XG4uYWxlcnQtZmVlZGJhY2sgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTBkOGQzO1xufVxuLmFsZXJ0LWZlZWRiYWNrIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICNiY2UzZTE7XG59XG4uYWxlcnQtZmVlZGJhY2sgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjNmZhOGE5O1xufVxuLmFsZXJ0LWZlZWRiYWNrIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICNiY2UzZTE7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5YWQyZDE7XG4gIGJvcmRlci1jb2xvcjogI2JkZTJlMTtcbiAgY29sb3I6ICMzMTZmNmU7XG59XG4uYWxlcnQtc3VjY2VzcyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhY2RhZDk7XG59XG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMjI0YjRiO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2Utb3V0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxubmF2IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5uYXYubmF2YmFyLFxubmF2IC5kcm9wZG93bi1tZW51IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyoqXG4gKiBGb3JtIFN0eWxpbmdcbiAqIFxuICovXG4ucHFyLWZvcm0gLmlucHV0LWdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucHFyLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwLjhlbTtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBmb3IgYm94IHNoYWRvd3MgdG8gc2hvdyBvbiBpT1MgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzLCBib3JkZXItY29sb3IgMC4yNXM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nLWxlZnQ6IDNlbTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgd2lkdGg6IDQwJTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDcwLjI1JTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDgwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMS4yNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDNlbSwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuNmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzhCOEM4QjtcbiAgcGFkZGluZzogMC41MGVtIDA7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLnBxci1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCAuZmEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogIzk5OTtcbn1cbi5wcXItZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGJvdHRvbTogODAlO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZzogMC4xNWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuLnBxci1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCxcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnBxci1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCxcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG4ucHFyLWZvcm0gLmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWZpZWxkLFxuLnBxci1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuLnBxci1mb3JtIC5pbnB1dC0tZmlsbGVkIGlucHV0OjpwbGFjZWhvbGRlcixcbi5wcXItZm9ybSAuaW5wdXQtLWZpbGxlZCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RkZDtcbn1cbi5wcXItZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIsXG4ucHFyLWZvcm0gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZTtcbiAgY29sb3I6ICM5OTk7XG59XG4ucHFyLWZvcm0gLmludmVyc2UuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbi5wcXItZm9ybSAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLnBxci1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDEuNWVtO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwLjhlbTtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBmb3IgYm94IHNoYWRvd3MgdG8gc2hvdyBvbiBpT1MgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzLCBib3JkZXItY29sb3IgMC4yNXM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nLWxlZnQ6IDNlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZzogMCAxZW07XG4gIHdpZHRoOiA0MCU7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiA3MC4yNSU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA4MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDEuMjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzZW0sIDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuNmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzhCOEM4QjtcbiAgcGFkZGluZzogMC41MGVtIDA7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IC5mYSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjOTk5O1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb250ZW50KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXdlaWdodDogODAwO1xuICBib3R0b206IDgwJTtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmc6IDAuMTVlbSAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCxcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtZmllbGQsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjOWFkMmQxO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC0tZmlsbGVkIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuZm9ybSNmb3JtLWNvbnRhY3QgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZTtcbiAgY29sb3I6ICM5OTk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmludmVyc2UuaW5wdXQtd3JhcHBlciBpbnB1dDo6cGxhY2Vob2xkZXIsXG5mb3JtI2Zvcm0tY29udGFjdCAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG59XG5mb3JtI2Zvcm0tY29udGFjdCAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjOWFkMmQxO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbn1cbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0jZm9ybS1jb250YWN0IC5pbnB1dC13cmFwcGVyIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGRkO1xufVxuZm9ybSNmb3JtLWNvbnRhY3QgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMS41ZW07XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDAuOGVtO1xuICB3aWR0aDogNjAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXdlaWdodDogNDAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIGZvciBib3ggc2hhZG93cyB0byBzaG93IG9uIGlPUyAqL1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZDFkMDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMsIGJvcmRlci1jb2xvciAwLjI1cztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmctbGVmdDogM2VtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC13cmFwcGVyIC5pbnB1dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgd2lkdGg6IDQwJTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDcwLjI1JTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDgwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgMS4yNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDNlbSwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS42ZW0gMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjOEI4QzhCO1xuICBwYWRkaW5nOiAwLjUwZW0gMDtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQgLmZhIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgY29sb3I6ICM5OTk7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciAuaW5wdXQtbGFiZWwgLmlucHV0LWxhYmVsLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGJvdHRvbTogODAlO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZzogMC4xNWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC1maWVsZDpmb2N1cyArIC5pbnB1dC1maWVsZCxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICM5YWQyZDE7XG4gIHBhZGRpbmctbGVmdDogMS4yNWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLmlucHV0LS1maWxsZWQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBlYXNlO1xuICBjb2xvcjogIzk5OTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgLmlucHV0LWZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogIzlhZDJkMTtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1ZW07XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW52ZXJzZS5pbnB1dC13cmFwcGVyIGlucHV0OjpwbGFjZWhvbGRlcixcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5pbnZlcnNlLmlucHV0LXdyYXBwZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkZGQ7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAuaW5wdXQtd3JhcHBlciB7XG4gIG1hcmdpbjogMWVtO1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG4gIC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuICAvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC5zZWFyY2guaW5wdXQtZ3JvdXAge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnNlYXJjaC5pbnB1dC1ncm91cCAudHdpdHRlci10eXBlYWhlYWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiA2NXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3gtc2hhZG93OiAycHggMnB4IDVweCAjZjlmOWY5O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3R0b206IDEwMCU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG4gIGJvcmRlci13aWR0aDogOXB4O1xuICBtYXJnaW4tbGVmdDogLTlweDtcbiAgbGVmdDogNTBweDtcbiAgdG9wOiAtMThweDtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cy5uby1iZWZvcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24ge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWFkMmQxO1xuICBoZWlnaHQ6IDc1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIGgzLFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIGg0IHtcbiAgY29sb3I6ICM5YWQyZDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gaDQge1xuICBjb2xvcjogYmxhY2s7XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gaW1nIHtcbiAgbWF4LWhlaWdodDogNTBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb246aG92ZXIsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzlhZDJkMTtcbn1cbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyBkaXYuc3VnZ2VzdGlvbjpob3ZlciBoMyxcbmZvcm0uYXV0b2NvbXBsZXRlLXNlYXJjaC1mb3JtIC50dC1tZW51IC5hdXRvY29tcGxldGUtcmVzdWx0cyBkaXYuc3VnZ2VzdGlvbi50dC1jdXJzb3IgaDMsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb246aG92ZXIgaDQsXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIGg0LFxuZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uOmhvdmVyIGksXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24udHQtY3Vyc29yIGkge1xuICBjb2xvcjogd2hpdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgZm9ybS5hdXRvY29tcGxldGUtc2VhcmNoLWZvcm0gLnR0LW1lbnUgLmF1dG9jb21wbGV0ZS1yZXN1bHRzIGRpdi5zdWdnZXN0aW9uIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBmb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSAudHQtbWVudSAuYXV0b2NvbXBsZXRlLXJlc3VsdHMgZGl2LnN1Z2dlc3Rpb24gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5jb2xvcjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMzQ5OGRiO1xuICBjb2xvcjogd2hpdGU7XG59XG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMzNDk4ZGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmh0bWwsXG5ib2R5IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuYm9keSBidXR0b24uYnRuLFxuYm9keSBhLmJ0biB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI1cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5ib2R5IGEge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbmJvZHkgbmF2IC5uYXZiYXItYnJhbmQgPiBpbWcge1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSBuYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIG1pbi13aWR0aDogMzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBib2R5IG5hdiAubmF2YmFyLWNvbGxhcHNlIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICB9XG59XG5ib2R5ICNtYWluIHtcbiAgbWluLWhlaWdodDogODAwcHg7XG59XG5ib2R5ICNob21lLWJhbm5lcixcbmJvZHkgI2Jyb3dzZS1iYW5uZXIge1xuICBtYXJnaW4tdG9wOiAtMzVweDtcbn1cbmJvZHkgI3NwbGFzaC1zZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICAvKiBTbWFsbCBkZXZpY2VzIG9ubHkgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICBib2R5ICNzcGxhc2gtc2VhcmNoIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGJvZHkgI3NwbGFzaC1zZWFyY2ggaDIge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgfVxuICBib2R5ICNzcGxhc2gtc2VhcmNoIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuYm9keSAucGFnZS1ob21lIC5vdGhlci1jb250ZW50IC5mYSB7XG4gIGNvbG9yOiAjZjE2YjFkO1xufVxuYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgbWFyZ2luLXRvcDogMjI1cHg7XG4gIGhlaWdodDogMjAwcHg7XG4gIC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbiAgLyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG4gIC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGJvZHkgLnBhZ2UtaG9tZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgICBtYXJnaW4tdG9wOiAxNzVweDtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuICBib2R5IC5wYWdlLWhvbWUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogMzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1ob21lICNtb2xlY3VsZS12aWV3ZXIgZGl2LFxuICBib2R5IC5wYWdlLWhvbWUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0sXG5ib2R5IC5wYWdlLWhvbWUgLnRoZS1uZXdzIGEubGlzdC1ncm91cC1pdGVtIHtcbiAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIGJhY2tncm91bmQ6ICM1ZjllYTA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0gaS5mYSxcbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW0gaS5mYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkgLnBhZ2UtaG9tZSAudGhlLW5ld3MgYS5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5ib2R5IC5wYWdlLWhvbWUgLnRoZS1uZXdzIGEubGlzdC1ncm91cC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjNWY5ZWEwO1xufVxuYm9keSAucGFnZS1ob21lIC50aGUtbmV3cyBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciBpLmZhLFxuYm9keSAucGFnZS1ob21lIC50aGUtbmV3cyBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciBpLmZhIHtcbiAgY29sb3I6ICM1ZjllYTA7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICBmb250LXNpemU6IDIzcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICBib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBib2R5IC5wYWdlLW1vbGVjdWxlIGgxI21vbGVjdWxlLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgfVxufVxuYm9keSAucGFnZS1tb2xlY3VsZSBoMSNtb2xlY3VsZS1uYW1lIC5zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIC5wYW5lbCB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgbGkge1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYSBzcGFuIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YxNmIxZDtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgLm1vbGVjdWxlLXRhZ3MgYTpob3ZlciBzcGFuIHtcbiAgY29sb3I6ICNmMTZiMWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAudG9vbHRpcC1pbm5lciB7XG4gIHdpZHRoOiAxNTBweDtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgaDIge1xuICBmb250LXNpemU6IDIxcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyBoMiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIGgyIC5wcm9wZXJ0aWVzLXZpZXctb3B0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXByb3BlcnRpZXMgdGFibGUgdHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB0Ym9keSB0ciB0ZCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS1wcm9wZXJ0aWVzIHRhYmxlIHRib2R5IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICBtaW4td2lkdGg6IDE1MHB4O1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyB0YWJsZSB0Ym9keSAubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtcHJvcGVydGllcyAubW9sZWN1bGUtc3dpdGNodmlldyAubW9iaWxlIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBkaXYsXG5ib2R5IC5wYWdlLW1vbGVjdWxlICNtb2xlY3VsZS12aWV3ZXIgY2FudmFzIHtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgLyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuICAvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbiAgLyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGNhbnZhcyB7XG4gICAgaGVpZ2h0OiAzNTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBkaXYsXG4gIGJvZHkgLnBhZ2UtbW9sZWN1bGUgI21vbGVjdWxlLXZpZXdlciBjYW52YXMge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGRpdixcbiAgYm9keSAucGFnZS1tb2xlY3VsZSAjbW9sZWN1bGUtdmlld2VyIGNhbnZhcyB7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgfVxufVxuYm9keSAucGFnZS1icm93c2UgI3NwbGFzaC1zZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuYm9keSAucGFnZS1icm93c2UgI3NwbGFzaC1zZWFyY2ggI251bS1jb21wb3VuZHMge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlICNzcGxhc2gtc2VhcmNoICNudW0tY29tcG91bmRzIC5udW1iZXIge1xuICBjb2xvcjogI2Q5NTM0Zjtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlIG5hdi5wYWdpbmF0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5ib2R5IC5wYWdlLWJyb3dzZSBuYXYucGFnaW5hdGlvbiAjbW9sZWN1bGUtYWpheC1sb2FkZXIge1xuICB3aWR0aDogODAlO1xufVxuYm9keSAucGFnZS1icm93c2UgbmF2LnBhZ2luYXRpb24gLmNvZ3Mge1xuICB3aWR0aDogNC41ZW07XG4gIGhlaWdodDogNC41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5ib2R5IC5wYWdlLWJyb3dzZSBuYXYucGFnaW5hdGlvbiAuY29ncyBpIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGNvbG9yOiAjZjE2YjFkO1xufVxuYm9keSAucGFnZS1icm93c2UgbmF2LnBhZ2luYXRpb24gLmNvZ3MgaTpudGgtY2hpbGQoMikge1xuICBmb250LXNpemU6IDNlbTtcbiAgdG9wOiAwLjJlbTtcbiAgbGVmdDogMC4xMjVlbTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cbmJvZHkgLnBhZ2UtYnJvd3NlIG5hdi5wYWdpbmF0aW9uIC5jb2dzIGk6bnRoLWNoaWxkKDMpIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgdG9wOiAwLjFlbTtcbiAgbGVmdDogMC44NWVtO1xufVxuYm9keSAucGFnZS1icm93c2UgLm1ldGEtZGF0YSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmJvZHkgLnBhZ2UtY29udGFjdCBhZGRyZXNzIHtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAxcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAxNXB4O1xufVxuYm9keSBmb290ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM1ZjllYTAgMCUsICM1NjhlOTAgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmNWY5ZWEwJywgZW5kQ29sb3JzdHI9JyNmZjU2OGU5MCcsIEdyYWRpZW50VHlwZT0wKTtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgYm9keSBmb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5ib2R5IGZvb3RlciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmJvZHkgZm9vdGVyIGE6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG5ib2R5IGZvb3RlciAuZm9vdGVyLWJyYW5kIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuYm9keSBmb290ZXIgLmZvb3Rlci1tYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5ib2R5IGZvb3RlciAuZm9vdGVyLW1hcCBsaSB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmJvZHkgZm9vdGVyIC5mb290ZXItc29jaWFsIC5mYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtaW4taGVpZ2h0OiAxLjVlbTtcbiAgdHJhbnNpdGlvbjogZm9udC1zaXplIDAuM3MgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI3LCAxLjU1KSAhaW1wb3J0YW50O1xuICAvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG4gIC8qIE1lZGl1bSBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSBmb290ZXIgLmZvb3Rlci1zb2NpYWwgLmZhIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICBib2R5IGZvb3RlciAuZm9vdGVyLXNvY2lhbCAuZmEge1xuICAgIGZvbnQtc2l6ZTogMi41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIH1cbn1cbmJvZHkgZm9vdGVyIC5mb290ZXItc29jaWFsIC5mYTpob3ZlciB7XG4gIGNvbG9yOiAjYjNiM2IzO1xufVxuLyoqKioqR0xPQkFMIEVMRU1FTlRTICoqKiovXG4uZmVlZGJhY2stbWVzc2FnZXMtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcbn1cbiNxcmNvZGVtb2RhbCAjcXJjb2RlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcblxuLmNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuLmFuaW1hdGlvbihAYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246IEBhbmltYXRpb247XG59XG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogQG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xufVxuLmFuaW1hdGlvbi1kdXJhdGlvbihAZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbn1cbi5hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xufVxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoQGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbn1cbi5hbmltYXRpb24tZGlyZWN0aW9uKEBkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG59XG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbi5ib3gtc2hhZG93KEBzaGFkb3cpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbi5ib3gtc2l6aW5nKEBib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG4uaHlwaGVucyhAbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogQG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogQG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogQG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi5wbGFjZWhvbGRlcihAY29sb3I6IEBpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBAY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG59XG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG59XG4uc2NhbGVYKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG59XG4uc2NhbGVZKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG59XG4uc2tldyhAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbn1cbi50cmFuc2xhdGUoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xufVxuLnJvdGF0ZShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVYKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbn1cbi5yb3RhdGVZKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbn1cbi5wZXJzcGVjdGl2ZShAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbn1cbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XG59XG4udHJhbnNmb3JtLW9yaWdpbihAb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuLnRyYW5zaXRpb24tcHJvcGVydHkoQHRyYW5zaXRpb24tcHJvcGVydHkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogQHRyYW5zaXRpb24tZGVsYXk7XG59XG4udHJhbnNpdGlvbi1kdXJhdGlvbihAdHJhbnNpdGlvbi1kdXJhdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuIiwiLyoqXG4gKiBNaXNjZWxsZWFub3VzIExFU1MgaGVscGVyIG1peGluc1xuICogQGF1dGhvcjogSm9zaCBSb2dhblxuICovXG5cblxuXG4uZml4ZWQge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi52ZXJ0aWNhbC1hbGlnbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiA1MCU7XG5cdC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi52ZXJ0aWNhbC1hbGlnbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cblxuLyoqXG4gKiBSZXNwb25zaXZlIHV0aWxpdGllcyBcbiAqICBcbiAqIFxuICovXG5cbi8vRmFjdG9yIHRvIHJlZHVjZSBlYWNoIGVsZW1lbnQgYnkgXG5AeHMtcmVkdWN0aW9uOiAuODA7IFxuQHNtLXJlZHVjdGlvbjogLjkwOyBcbkBtZC1yZWR1Y3Rpb246IC45NTtcbkBsZy1yZWR1Y3Rpb246IDEuMDtcblxuXG4vL0V4dHJhIFNpemVzIFxuQHNjcmVlbi14cy1taW46IChAc2NyZWVuLXNtLW1pbiAtIDIwMHB4KTtcbkBzY3JlZW4teHhzLW1pbjogMjAwcHg7XG5cbiNyZXNwb25zaXZlLWhlbHBlcnMge1xuXHQucmVzcG9uc2l2ZS1hYnN0cmFjdC1tYW51YWwoQHByb3BlcnR5LCBAeHMtdmFsdWUsIEBzbS12YWx1ZSwgQG1kLXZhbHVlLCBAbGctdmFsdWUpe1xuXHRcdEB7cHJvcGVydHl9OiBAeHMtdmFsdWU7XG5cblx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAc20tdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1tZC1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAbWQtdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogTGFyZ2UgZGV2aWNlcyAobGFyZ2UgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAbGctdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0LnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsLWV4dHJhKEBwcm9wZXJ0eSwgQHh4eHMtdmFsdWUsIEB4eHMtdmFsdWUsIEB4cy12YWx1ZSwgQHNtLXZhbHVlLCBAbWQtdmFsdWUsIEBsZy12YWx1ZSl7XG5cdFx0QHtwcm9wZXJ0eX06IEB4eHhzLXZhbHVlO1xuXG5cdFx0LyogU21hbGxlcmVyIGRldmljZXMgKHRhYmxldHMsIDIwMHB4IGFuZCB1cCkgKi9cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14eHMtbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQHh4cy12YWx1ZTtcblx0XHR9XG5cblx0XHQvKiBTbWFsbGVyIGRldmljZXMgKHRhYmxldHMsIDU2OHB4IGFuZCB1cCkgKi9cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14cy1taW4pIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAeHMtdmFsdWU7XG5cdFx0fVxuXG5cdFx0LyogU21hbGwgZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQHNtLXZhbHVlO1xuXHRcdH1cblxuXHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbWQtbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQG1kLXZhbHVlO1xuXHRcdH1cblxuXHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbGctbWluKSB7XG5cdFx0XHRAe3Byb3BlcnR5fTogQGxnLXZhbHVlO1xuXHRcdH1cblx0fVxuXHRcblx0LnJlc3BvbnNpdmUtYWJzdHJhY3QoQHByb3BlcnR5LCBAc2l6ZSl7XG5cdFx0LnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKEBwcm9wZXJ0eSwgQHNpemUgKiBAeHMtcmVkdWN0aW9uLCBAc2l6ZSAqIEBzbS1yZWR1Y3Rpb24sIEBzaXplICogQG1kLXJlZHVjdGlvbiwgQHNpemUgKiBAbGctcmVkdWN0aW9uKTtcblx0fVxuXG5cdC5yZXNwb25zaXZlLWhlaWdodChAc2l6ZSkge1xuXHRcdC5yZXNwb25zaXZlLWhlaWdodC1tYW51YWwoQHNpemUgKiBAeHMtcmVkdWN0aW9uLCBAc2l6ZSAqIEBzbS1yZWR1Y3Rpb24sIEBzaXplICogQG1kLXJlZHVjdGlvbiwgQHNpemUgKiBAbGctcmVkdWN0aW9uKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNaXhpbiB0byBhbGxvdyB0byBzZXQgYWxsIG9mIHRoZSBwcm9wZXIgbWVkaWEgc2l6ZXMgZm9yIGEgaGVpZ2h0XG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAeHMtc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKiBAcGFyYW0gIHtIZWlnaHQgU2l6ZX0gQHNtLXNpemUgW1RoZSBoZWlnaHQgeW91IHdhbnQgZm9yIHRoaXMgc2l6ZV1cblx0ICogQHBhcmFtICB7SGVpZ2h0IFNpemV9IEBtZC1zaXplIFtUaGUgaGVpZ2h0IHlvdSB3YW50IGZvciB0aGlzIHNpemVdXG5cdCAqIEBwYXJhbSAge0hlaWdodCBTaXplfSBAbGctc2l6ZSBbVGhlIGhlaWdodCB5b3Ugd2FudCBmb3IgdGhpcyBzaXplXVxuXHQgKi9cblx0LnJlc3BvbnNpdmUtaGVpZ2h0LW1hbnVhbChAeHMtc2l6ZSwgQHNtLXNpemUsIEBtZC1zaXplLCBAbGctc2l6ZSkge1xuXHRcdC5yZXNwb25zaXZlLWFic3RyYWN0LW1hbnVhbChoZWlnaHQsIEB4cy1zaXplLCBAc20tc2l6ZSwgQG1kLXNpemUsIEBsZy1zaXplKTtcblx0fVxuXG5cblx0LyogU21hbGwgZGV2aWNlcyAobW9iaWxlLCA3NjhweCBhbmQgZG93bikgKi9cblx0LnJlc3BvbnNpdmUtbGVzcy14cyhAcHJvcGVydHksIEB2YWx1ZSl7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6QHNjcmVlbi14cy1tYXgpIHtcblx0XHRcdEB7cHJvcGVydHl9OiBAdmFsdWU7XG5cdFx0fVxuXHR9XG5cblxuXG5cblxuXHRcblxufVxuI3Njcm9sbC1hcnJvdyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRsaW5lLWhlaWdodDogNTVweDtcblx0aGVpZ2h0OiA1NXB4O1xuXHR3aWR0aDogMjIwcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAwIDE1cHg7XG5cdG1hcmdpbi10b3A6IDI1cHg7XG5cblx0LnRleHQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0Y29sb3I6ICNkYmFkNmY7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRmb250LXdlaWdodDogMTAwO1xuXHRcdHotaW5kZXg6IDI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcblx0XHR0cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcblx0fVxuXHQuYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cdFx0d2lkdGg6IDY1cHg7XG5cdFx0aGVpZ2h0OiA1NXB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNkYmFkNmY7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC13ZWlnaHQ6IDEwMDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuXHRcdHRyYW5zaXRpb246IHdpZHRoIDMwMG1zO1xuXHR9XG5cdCY6aG92ZXIge1xuXHRcdC50ZXh0IHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0LmJsb2NrIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuLyoqQXJyb3cgSWNvbnMgKiovXG4uYXJyb3ctdXAge1xuXHR3aWR0aDogMDsgXG5cdGhlaWdodDogMDsgXG5cdGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcblx0Ym9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHJlZDtcbn1cblxuLmFycm93LWRvd24ge1xuXHR3aWR0aDogMDsgXG5cdGhlaWdodDogMDsgXG5cdGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFxuXHRib3JkZXItdG9wOiAyMHB4IHNvbGlkIHJlZDtcbn1cblxuLmFycm93LXJpZ2h0IHtcblx0d2lkdGg6IDA7IFxuXHRoZWlnaHQ6IDA7IFxuXHRib3JkZXItdG9wOiA2MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItYm90dG9tOiA2MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcblx0Ym9yZGVyLWxlZnQ6IDYwcHggc29saWQgcmVkO1xufVxuXG4uYXJyb3ctbGVmdCB7XG5cdHdpZHRoOiAwOyBcblx0aGVpZ2h0OiAwOyBcblx0Ym9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDsgXG5cdFxuXHRib3JkZXItcmlnaHQ6MTBweCBzb2xpZCByZWQ7IFxufSIsIi8qKlxuICogQm9vdHN0cmFwIE5vdGlmeSBTdHlsZXMgXG4gKiBcbiAqIEBzaXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29keWJhZy9ib290c3RyYXAtbm90aWZ5XG4gKi9cbkBub3RpZmljYXRpb25zLXktb2Zmc2V0OiA1MHB4O1xuQG5vdGlmaWNhdGlvbnMteC1vZmZzZXQ6IDEwcHg7IFxuXG4ubm90aWZpY2F0aW9ucyB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogOTk5OTtcblxuXHQuZmEtdGltZXMge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0LmNsb3NlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy10b3A6IDFweDtcblx0XHRvcGFjaXR5OiAxLjA7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHR9XG59XG5cbi8qIFBvc2l0aW9uaW5nICovXG4ubm90aWZpY2F0aW9ucy50b3AtcmlnaHQge1xuXHRyaWdodDogQG5vdGlmaWNhdGlvbnMteC1vZmZzZXQ7XG5cdHRvcDogQG5vdGlmaWNhdGlvbnMteS1vZmZzZXQ7XG59XG4ubm90aWZpY2F0aW9ucy50b3AtbGVmdCB7XG5cdGxlZnQ6IEBub3RpZmljYXRpb25zLXgtb2Zmc2V0O1xuXHR0b3A6IEBub3RpZmljYXRpb25zLXktb2Zmc2V0O1xufVxuLm5vdGlmaWNhdGlvbnMuYm90dG9tLWxlZnQge1xuXHRsZWZ0OiBAbm90aWZpY2F0aW9ucy14LW9mZnNldDtcblx0Ym90dG9tOiBAbm90aWZpY2F0aW9ucy15LW9mZnNldDtcbn1cbi5ub3RpZmljYXRpb25zLmJvdHRvbS1yaWdodCB7XG5cdHJpZ2h0OiBAbm90aWZpY2F0aW9ucy14LW9mZnNldDtcblx0Ym90dG9tOiBAbm90aWZpY2F0aW9ucy15LW9mZnNldFxufVxuXG4vKiBOb3RpZmljYXRpb24gRWxlbWVudCAqL1xuLm5vdGlmaWNhdGlvbnMgPiBkaXYge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogNXB4IDBweDtcbn0iLCIvKipcbiAqICBGb250IFNpemUgQ2xhc3NlcyA2IGxldmVscyB0byBhZGQgdG8ganMgZm9yIGdsb2JhbCBmb250LWFkanVzdG1lbnRcbiAqICAgIGZvbnQtIyAoMS02KVxuICpcbiAqL1xuI21hdGVyaWFse1xuICAuY2FyZHN7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCA2cHggMCByZ2JhKDAsMCwwLC4xMiksMCAxcHggNnB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB9XG59IiwiLyoqXHJcbiAqXHRWYXJpb3VzIGZvbnQgaGVscGVyIGNsYXNzZXMgZm9yIGNvbG9ycyBhbmQgbW9yZVxyXG4gKlxyXG4gKi9cclxuXHJcblxyXG4vL0ZsYXQgVUkgY29sb3JzIFxyXG5AY2xvdWRzOiAjZWNmMGYxO1xyXG5AcGV0ZXJSaXZlcjogIzM0OThkYjtcclxuQHN1bmZsb3dlcjogI2YxYzQwZjtcclxuQGFtZXRoeXN0OiAjOWI1OWI2O1xyXG5AZW1lcmFsZDogIzJlY2M3MTtcclxuQHR1cnF1b2lzZTogIzFhYmM5YzsgXHJcbkBhbGl6YXJpbjogI2U3NGMzYzsgXHJcbkBjYXJyb3Q6ICNlNjdlMjI7IFxyXG5AY29uY2VydGU6ICM5NWE1YTY7IFxyXG5cclxuXHJcbi5mb250LWJvbGR7IGZvbnQtd2VpZ2h0OiBib2xkO31cclxuLmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6IDMwMH1cclxuXHJcblxyXG4vL0ZvbnQgY29sb3IgY2hhbmdlcyBcclxuLmZvbnQtcHtjb2xvcjogQHRleHQtY29sb3I7fVxyXG4uZm9udC1wcmltYXJ5eyBjb2xvcjogQGJyYW5kLXByaW1hcnk7fVxyXG4uZm9udC13aGl0ZXsgY29sb3I6ICNmZmY7fVxyXG4uZm9udC1vZmYtd2hpdGV7IGNvbG9yOiBAY2xvdWRzO31cclxuLmZvbnQtYmx1ZXsgY29sb3I6IEBwZXRlclJpdmVyO31cclxuLmZvbnQteWVsbG93eyBjb2xvcjogQHN1bmZsb3dlcjt9XHJcbi5mb250LXB1cnBsZXsgY29sb3I6IEBhbWV0aHlzdDt9XHJcbi5mb250LWdyZWVueyBjb2xvcjogQGVtZXJhbGQ7fVxyXG4uZm9udC1ibHVlLWdyZWVue2NvbG9yOiBAdHVycXVvaXNlO31cclxuLmZvbnQtcmVke2NvbG9yOiBAYWxpemFyaW47fVxyXG4uZm9udC1vcmFuZ2V7Y29sb3I6IEBjYXJyb3Q7fVxyXG4uZm9udC1jb25jcmV0ZXtjb2xvcjogQGNvbmNlcnRlO31cclxuXHJcblxyXG4vL0ZvbnQgY29sb3IgY2hhbmdlcyBcclxuLmJhY2tncm91bmQtcHtiYWNrZ3JvdW5kLWNvbG9yOiBAdGV4dC1jb2xvcjt9XHJcbi5iYWNrZ3JvdW5kLXByaW1hcnl7IGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1wcmltYXJ5O31cclxuLmJhY2tncm91bmQtd2hpdGV7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7fVxyXG4uYmFja2dyb3VuZC1vZmYtd2hpdGV7IGJhY2tncm91bmQtY29sb3I6IEBjbG91ZHM7fVxyXG4uYmFja2dyb3VuZC1ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGV0ZXJSaXZlcjt9XHJcbi5iYWNrZ3JvdW5kLXllbGxvd3sgYmFja2dyb3VuZC1jb2xvcjogQHN1bmZsb3dlcjt9XHJcbi5iYWNrZ3JvdW5kLXB1cnBsZXsgYmFja2dyb3VuZC1jb2xvcjogQGFtZXRoeXN0O31cclxuLmJhY2tncm91bmQtZ3JlZW57IGJhY2tncm91bmQtY29sb3I6IEBlbWVyYWxkO31cclxuLmJhY2tncm91bmQtYmx1ZS1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiBAdHVycXVvaXNlO31cclxuLmJhY2tncm91bmQtcmVke2JhY2tncm91bmQtY29sb3I6IEBhbGl6YXJpbjt9XHJcbi5iYWNrZ3JvdW5kLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiBAY2Fycm90O31cclxuLmJhY2tncm91bmQtY29uY3JldGV7YmFja2dyb3VuZC1jb2xvcjogQGNvbmNlcnRlO30iLCIvKipcclxuICpcdFZhcmlvdXMgdHJhbnNpdGlvbnMgaGVscGVyc1xyXG4gKlxyXG4gKi9cclxuXHJcbkBjdXN0b20tdHJhbnMtdHlwZTogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI3LCAxLjU1KTtcclxuQGN1c3RvbS10cmFucy1zcGVlZDogMC4zcztcclxuXHJcbiN0cmFuc2l0aW9ue1xyXG5cdEBkZWZhdWx0LWRlbGF5OiAwcztcclxuXHRAZGVmYXVsdC1kdXJhdGlvbjogMC4yNXM7XHJcblx0QGRlZmF1bHQtcHJvcGVydHk6IGFsbDsgXHJcblx0QGRlZmF1bHQtdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyBcclxuXHJcblxyXG5cdC5kZWZhdWx0e1xyXG5cdFx0LmFic3RyYWN0KEBkZWZhdWx0LWRlbGF5LCBAZGVmYXVsdC1kdXJhdGlvbiwgQGRlZmF1bHQtcHJvcGVydHksIEBkZWZhdWx0LXRpbWluZy1mdW5jdGlvbik7XHJcblx0fVxyXG5cclxuXHQuZGVmYXVsdC1wcm9wZXJ0eShAaXRlbSl7XHJcblx0XHQuYWJzdHJhY3QoQGRlZmF1bHQtZGVsYXksIEBkZWZhdWx0LWR1cmF0aW9uLCBAaXRlbSwgQGRlZmF1bHQtdGltaW5nLWZ1bmN0aW9uKTtcclxuXHR9XHJcblxyXG5cdC5vZmYoKXtcclxuXHRcdHRyYW5zaXRpb246IG5vbmU7IFxyXG5cdH1cclxuXHJcblx0LmFic3RyYWN0KEBkZWxheSwgQGR1cmF0aW9uLCBAcHJvcGVydHksIEB0aW1pbmctZnVuY3Rpb24pe1xyXG5cdFx0dHJhbnNpdGlvbi1kZWxheTogQGRlbGF5O1xyXG5cdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogQGR1cmF0aW9uO1xyXG5cdFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogQHByb3BlcnR5O1xyXG5cdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XHJcblx0fVxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0LyoqXHJcblx0ICogSGVscGVyIGNsYXNzIHRvIGFkZCB0cmFuc2l0aW9uIGJhc2VkIGhpZGVzIFxyXG5cdCAqL1xyXG5cdC50cmFucy1oaWRle1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdGhlaWdodDogMDtcclxuXHRcdG1hcmdpbjogMDsgXHJcblx0XHRwYWRkaW5nOiAwOyBcclxuXHRcdC5jbGVhcmZpeCgpO1xyXG5cdH1cclxufVxyXG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG4uY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIkB4cy1yZWR1Y3Rpb246IC44MDtcclxuQHNtLXJlZHVjdGlvbjogLjkwO1xyXG5AbWQtcmVkdWN0aW9uOiAuOTU7XHJcbkBsZy1yZWR1Y3Rpb246IDEuMDtcclxuXHJcblxyXG5oMXtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgxICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oMntcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgyICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oM3tcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWgzICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oNHtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg0ICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59XHJcblxyXG5oNXtcclxuXHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQHhzLXJlZHVjdGlvbik7XHJcblxyXG5cdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQHNtLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQG1kLXJlZHVjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHsgXHJcblx0XHRmb250LXNpemU6IChAZm9udC1zaXplLWg1ICogQGxnLXJlZHVjdGlvbik7XHJcblx0fVxyXG59IiwiLyoqXG4gKiBcdFN0eWxlcyBmb3IgcHJpbnRpbmcgIFxuICogXG4gKi9cbkBtZWRpYSBwcmludCB7XG5cdC5jb250YWluZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0fVxuXHQvL0dsb2JhbCBIaWRlc1xuXHRoZWFkZXIsIGZvb3RlciwgW2RhdGEtdG9nZ2xlKj10b29sdGlwXSwgaW1nOmFmdGVyLCAubm90aWZpY2F0aW9ucywgLnRvb2x0aXAge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQvL01vbGVjdWxlIFBhZ2UgU3R5bGVzIFxuXHQucGFnZS1tb2xlY3VsZSB7XG5cdFx0aDEjbW9sZWN1bGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcblx0XHRcdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRcdFx0ei1pbmRleDogMTA7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQmOjpiZWZvcmV7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiUGl0dCBRdWFudHVtIFJlcG9zaXRvcnkgLSBcIjsgXG5cdFx0XHR9XG5cblx0XHRcdC5zbWFsbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA1cHg7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0XHQjcm90YXRpb25Td2l0Y2gsICNyZXNldC1tb2xlY3VsZSwgI3ByaW50LW1vbGVjdWxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRcdC5xci1jb2RlLWljb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCNtb2xlY3VsZS1wcm9wZXJ0aWVzIHtcblx0XHRcdC50b29sdGlwLWlubmVyLCAubW9sZWN1bGUtc3dpdGNodmlldywgLnByb3BlcnRpZXMtdmlldy1vcHRpb25zLCAucGFuZWwtYm9keSwgLm1vbGVjdWxlLWxpbmtzLCAubW9sZWN1bGUtcXItY29kZSwgLm1vbGVjdWxlLWRhdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHtcblx0XHRcdFx0Ly9GaXggU2l6aW5nIGZvciBsYXJnZSBzeW5veW0gbGlzdHNcblx0XHRcdH1cblx0XHRcdGE6bGluazphZnRlciwgYTp2aXNpdGVkOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdH1cblx0XHRcdC5tb2xlY3VsZS10YWdzIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0YTpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5wYW5lbC1kZWZhdWx0LCAucGFuZWwsIC5wYW5lbC1oZWFkaW5nIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdFx0aDIge1xuXHRcdFx0XHRmb250LXNpemU6IDIxcHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDBweDtcblxuXHRcdFx0XHQucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9UYWJsZSB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3IgdGhlIG1vbGVjdWxlIFxuXHRcdFx0dGFibGUge1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cblx0XHRcdFx0dHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGJvZHkge1xuXHRcdFx0XHRcdHRyIHRkIHtcblx0XHRcdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0XHRcdFx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogNHB4O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8zRG1vbCB2aWV3ZXJcblx0XHQjbW9sZWN1bGUtdmlld2VyIHtcblx0XHRcdGRpdiwgY2FudmFzIHtcblx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuc3ZnLXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0aGVpZ2h0OiA1MDBweDsgXG5cdFx0XHRcdHotaW5kZXg6IC0xMDA7XG5cdFx0XHR9XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtNzVweDtcblx0XHRcdG1hcmdpbi10b3A6IC03NXB4O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdFx0I3FyLXByaW50LXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA2NXB4OyBcblx0XHRcdGxlZnQ6IDI4cHg7IFxuXHRcdFx0aW1nIHtcblx0XHRcdFx0aGVpZ2h0OiA3NXB4OyBcblx0XHRcdFx0ei1pbmRleDogMTA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHR9XG59IiwiLy8gQWxlcnRzXG5cbi5hbGVydC12YXJpYW50KEBiYWNrZ3JvdW5kOyBAYm9yZGVyOyBAdGV4dC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG5cbiAgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAYm9yZGVyLCA1JSk7XG4gIH1cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oQHRleHQtY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8qKlxuICogIEJvb3RzdHJhcCBPdmVycmlkZXMgXG4gKi9cbi5hbGVydC1mZWVkYmFjayB7XG5cdC5hbGVydC12YXJpYW50KEB0aGVtZS1jYWRldC1ibHVlO1xuXHQjQjJERkRCO1xuXHQjRTBGMkYxKTtcblx0Ly9CYWNrZ3JvdW5kLCBib3JkZXIsIHRleHRCMkRGREJcblx0LmFsZXJ0LXZhcmlhbnQoQHRoZW1lLWNhZGV0LWJsdWU7XG5cdGxpZ2h0ZW4oQHRoZW1lLWNhZGV0LWJsdWUsIDEwJSk7XG5cdCNFMEYyRjEpO1xuXHQvL0JhY2tncm91bmQsIGJvcmRlciwgdGV4dEIyREZEQlxufVxuLmFsZXJ0LXN1Y2Nlc3Mge1xuXHQuYWxlcnQtdmFyaWFudChAdGhlbWUtbGlnaHQtYXF1YTtcblx0bGlnaHRlbihAdGhlbWUtbGlnaHQtYXF1YSwgMTAlKTtcblx0ZGFya2VuKEB0aGVtZS1saWdodC1hcXVhLCA0MCUpKTtcblx0Ly9CYWNrZ3JvdW5kLCBib3JkZXIsIHRleHRCMkRGREJcbn1cbkBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tbWQtbWluKSB7XG5cdC5kcm9wZG93bi1tZW51IHtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2Utb3V0O1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblx0Lm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0ei1pbmRleDogMTtcblx0fVxufVxubmF2IHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cblx0Ji5uYXZiYXIsIC5kcm9wZG93bi1tZW51IHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdH1cbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcblx0Ym9yZGVyOiBub25lO1xufVxuXG5AbmF2YmFyLWRlZmF1bHQtYmc6ICNmZmY7XG5AbmF2YmFyLWRlZmF1bHQtYm9yZGVyOiBub25lOyIsIi8qKlxuICogRm9ybSBTdHlsaW5nXG4gKiBcbiAqL1xuXG4vL0dsb2JhbCBmb3JtIHN0eWxlXG4ucHFyLWZvcm0ge1xuXHQuaW5wdXQtZ3JvdXB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZy1ib3R0b206IDEuNWVtO1xuXHR9XG5cdC5pbnB1dC13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Ly8gbWFyZ2luOiAxZW07XG5cdFx0Ly8gd2lkdGg6IGNhbGMoMTAwJSAtIDJlbSk7XG5cdFx0d2lkdGg6IDEwMCU7IFxuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHQuaW5wdXQtZmllbGQge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRwYWRkaW5nOiAwLjhlbTtcblx0XHRcdHdpZHRoOiA2MCU7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0YmFja2dyb3VuZDogI2YwZjBmMDtcblx0XHRcdGNvbG9yOiAjODg4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogZm9yIGJveCBzaGFkb3dzIHRvIHNob3cgb24gaU9TICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkMGQxZDA7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMsIGJvcmRlci1jb2xvciAwLjI1cztcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAzZW07XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuaW5wdXQtbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0cGFkZGluZzogMCAxZW07XG5cdFx0XHR3aWR0aDogNDAlO1xuXHRcdFx0Y29sb3I6ICM2OTY5Njk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogNzAuMjUlO1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDgwJTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBhZGRpbmc6IDAgMS4yNWVtO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzZW0sIDApO1xuXHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuXHRcdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuXG5cdFx0XHQuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IDEuNmVtIDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRjb2xvcjogIzhCOEM4Qjtcblx0XHRcdFx0cGFkZGluZzogMC41MGVtIDA7XG5cdFx0XHRcdCBwYWRkaW5nLWJvdHRvbTogMXB4O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG5cdFx0XHRcdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcblxuXHRcdFx0XHQvL0xlZnQgSWNvblxuXHRcdFx0XHQuZmEge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogYXR0cihkYXRhLWNvbnRlbnQpO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRcdGJvdHRvbTogODAlO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGNvbG9yOiBAdGhlbWUtbGlnaHQtYXF1YTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwLjE1ZW0gMDtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAwLjg1ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRcblx0fVxuXHQvL1N0eWxlcyBmb3IgZm9jdXNcblx0LmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsLCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdH1cblx0LmlucHV0LWZpZWxkOmZvY3VzICsgLmlucHV0LWxhYmVsIC5pbnB1dC1sYWJlbC1jb250ZW50LCAuaW5wdXQtLWZpbGxlZCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcblx0fVxuXHQuaW5wdXQtZmllbGQ6Zm9jdXMgKyAuaW5wdXQtZmllbGQsIC5pbnB1dC0tZmlsbGVkIC5pbnB1dC1maWVsZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiBAdGhlbWUtbGlnaHQtYXF1YTtcblx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblx0fVxuXG5cdC5pbnB1dC0tZmlsbGVke1xuXHRcdGlucHV0OjpwbGFjZWhvbGRlciwgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiAjZGRkO1xuXHRcdH1cblx0fVxuXHQvL1BsYWNlaG9sZGVyXG5cdGlucHV0OjpwbGFjZWhvbGRlciwgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcblx0XHR0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBlYXNlO1xuXHRcdGNvbG9yOiAjOTk5O1xuXHR9XG5cblx0LmludmVyc2UuaW5wdXQtd3JhcHBlciB7XG5cdFx0LmlucHV0LWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdFx0fVxuXHRcdC5pbnB1dC1sYWJlbCAuaW5wdXQtbGFiZWwtY29udGVudCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuXHRcdH1cblx0XHQuaW5wdXQtZmllbGR7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdGJvcmRlci1jb2xvcjogQHRoZW1lLWxpZ2h0LWFxdWE7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblx0XHR9XG5cblx0XHRpbnB1dDo6cGxhY2Vob2xkZXIsIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG5cdFx0XHRjb2xvcjogI2RkZDtcblx0XHR9XG5cdH1cbn1cblxuZm9ybSNmb3JtLWNvbnRhY3R7XG5cdC5wcXItZm9ybSgpO1xuXG5cdC5pbnB1dC13cmFwcGVye1xuXHRcdC5pbnZlcnNlLmlucHV0LXdyYXBwZXIoKTtcblx0fVxuXHRcblxuXG5cdGgze1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4OyBcblx0fVxufVxuXG5mb3JtLmF1dG9jb21wbGV0ZS1zZWFyY2gtZm9ybSB7XG5cdC5wcXItZm9ybSgpO1xuXG5cdC5pbnB1dC13cmFwcGVye1xuXHRcdG1hcmdpbjogMWVtOyBcblx0fVxuXG5cdC8vUHJpbWFyeSBTZWFyY2ggSW5wdXRcblx0LnNlYXJjaC5pbnB1dC1ncm91cCB7XG5cdFx0I3Jlc3BvbnNpdmUtaGVscGVycyAucmVzcG9uc2l2ZS1hYnN0cmFjdC1tYW51YWwod2lkdGgsIDEwMCUsIDkwJSwgOTAlLCA5MCUpO1xuXHRcdG1heC13aWR0aDogMTAwMHB4O1xuXG5cdFx0LnR3aXR0ZXItdHlwZWFoZWFkIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblx0Ly9BdXRvIENvbXBsZXRlIFJlc3VsdHMgXG5cdC50dC1tZW51IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0XHR0b3A6IDEwMCU7XG5cdFx0LmNlbnRlci1ibG9jaygpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwMHB4O1xuXG5cdFx0LmF1dG9jb21wbGV0ZS1yZXN1bHRzIHtcblx0XHRcdC5jZW50ZXItYmxvY2soKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdC8vICNyZXNwb25zaXZlLWhlbHBlcnMgLnJlc3BvbnNpdmUtYWJzdHJhY3QtbWFudWFsKHdpZHRoLCAxMDAlLCA5MCUsIDkwJSwgOTAlKTtcblx0XHRcdC8vIG1heC13aWR0aDogMTAwMHB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdHRvcDogNjVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG5cdFx0XHRib3gtc2hhZG93OiAycHggMnB4IDVweCAjZjlmOWY5O1xuXG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiA5cHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtOXB4O1xuXHRcdFx0XHRsZWZ0OiA1MHB4O1xuXHRcdFx0XHR0b3A6IC0xOHB4O1xuXHRcdFx0fVxuXHRcdFx0Ji5uby1iZWZvcmUge1xuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGRpdi5zdWdnZXN0aW9uIHtcblx0XHRcdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQoKTtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEB0aGVtZS1saWdodC1hcXVhO1xuXHRcdFx0XHRoZWlnaHQ6IDc1cHg7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXG5cdFx0XHRcdGgzLCBoNCB7XG5cdFx0XHRcdFx0Y29sb3I6IEB0aGVtZS1saWdodC1hcXVhO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRoNCB7XG5cdFx0XHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0bWF4LWhlaWdodDogNTBweDtcblx0XHRcdFx0XHQuY2VudGVyLWJsb2NrKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Jjpob3ZlciwgJi50dC1jdXJzb3Ige1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1saWdodC1hcXVhO1xuXG5cdFx0XHRcdFx0aDMsIGg0LCBpIHtcblx0XHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWVkaWEgKG1heC13aWR0aDpAc2NyZWVuLXNtLW1heCkge1xuXHRcdFx0XHRcdGhlaWdodDogMTUwcHg7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdFx0YXtcblx0XHRcdFx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblx0fVxufSIsIi8vSW1wb3J0IGJvb3RzdHJhcCB2YXJpYWJsZXMgYW5kIG1peGlucyB0byB1c2UgdmFyaWFibGVzXG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzJztcbkBpbXBvcnQgKHJlZmVyZW5jZSkgXCJib290c3RyYXAvYm9vdHN0cmFwLmxlc3NcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvdmFyaWFibGVzLmxlc3NcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvbWl4aW5zLmxlc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2dyaWQtbGF5b3V0Lmxlc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2Jvb3RzdHJhcC1ub3RpZnkubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvdXRpbHMubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvaGVscGVycy5sZXNzXCI7IFxuQGltcG9ydCBcIm1pc2MvZm9udC1oZWxwZXJzLmxlc3NcIjtcbkBpbXBvcnQgXCJtaXNjL3RyYW5zaXRpb25zLmxlc3NcIjtcbkBpbXBvcnQgXCJtaXNjL3R5cG9ncmFwaHkubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvcHJpbnQubGVzc1wiO1xuQGltcG9ydCBcIm1pc2MvX2Jvb3RzdHJhcC5sZXNzXCI7XG5cbi8vQWRkaXRpb25hbCBjb21wb25lbnRzIFxuQGltcG9ydCBcImNvbXBvbmVudHMvZm9ybXMubGVzc1wiO1xuXG4vL0hpZ2hsaWd0aGVyIFx0XG5jb2xvcjo6LW1vei1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiBAcGV0ZXJSaXZlcjtcblx0Y29sb3I6IHdoaXRlO1xufVxuOjpzZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiBAcGV0ZXJSaXZlcjtcblx0Y29sb3I6IHdoaXRlO1xufVxuaHRtbCwgYm9keSB7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbmJvZHkge1xuXHQvL1RyYW5zaXRpb25zIFxuXHRidXR0b24uYnRuLCBhLmJ0biB7XG5cdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQtcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cblx0YSB7XG5cdFx0I3RyYW5zaXRpb24gLmRlZmF1bHQtcHJvcGVydHkoY29sb3IpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0fVxuXHR9XG5cdG5hdiB7XG5cdFx0Ly9Mb2dvIFBsYWNlbWVudCBpbiB0aGUgbmF2YmFyIFxuXHRcdC5uYXZiYXItYnJhbmQgPiBpbWcge1xuXHRcdFx0bWFyZ2luLXRvcDogLTEwcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcblx0XHR9XG5cdFx0LmRyb3Bkb3duLW1lbnUge1xuXHRcdFx0Ly9NYWtlIHRoZSBkcm9wIGRvd24gYmlnZ2VyIHdoZW4gaXQgaXNuJ3QgY29sbGFwc2VkIFxuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0bWluLXdpZHRoOiAzNTBweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly9BZGQgcGFkZGluZyB0byB0aGUgbmF2YmFyIHdoZW4gY29sbGFwc2VkXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6QHNjcmVlbi14cy1tYXgpIHtcblx0XHRcdC5uYXZiYXItY29sbGFwc2UgbGkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQjbWFpbiB7XG5cdFx0bWluLWhlaWdodDogODAwcHg7XG5cdH1cblx0I2hvbWUtYmFubmVyLCAjYnJvd3NlLWJhbm5lciB7XG5cdFx0bWFyZ2luLXRvcDogLTM1cHg7XG5cdH1cblx0I3NwbGFzaC1zZWFyY2gge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHQvKiBTbWFsbCBkZXZpY2VzIG9ubHkgKi9cblx0XHRAbWVkaWEgKG1heC13aWR0aDpAc2NyZWVuLXNtLW1heCkge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHR9XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQvL0hvbWUgcGFnZSBzdHlsaW5nIFxuXHQucGFnZS1ob21lIHtcblx0XHQvL2xpc3QgY29udGVudCBvZiBhcnRpY2xlcywgbGlua3MsIGV0Yy5cblx0XHQub3RoZXItY29udGVudCB7XG5cdFx0XHQuZmEge1xuXHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vM0Rtb2wgdmlld2VyXG5cdFx0I21vbGVjdWxlLXZpZXdlciB7XG5cdFx0XHQvL01ha2UgdGhlIDNkbW9sZSBzb21ld2hhdCByZXNwb25zaXZlIFxuXHRcdFx0ZGl2LCBjYW52YXMge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMjVweDtcblx0XHRcdFx0aGVpZ2h0OiAyMDBweDtcblxuXHRcdFx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTc1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGhlaWdodDogMzUwcHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0XHRoZWlnaHQ6IDQwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnRoZS1uZXdze1xuXHRcdFx0YS5saXN0LWdyb3VwLWl0ZW0sIGEubGlzdC1ncm91cC1pdGVte1xuXHRcdFx0XHQudHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBAdGhlbWUtY2FkZXQtYmx1ZTtcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0XHRpLmZhe1xuXHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTsgXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcblx0XHRcdFx0XHRjb2xvcjogQHRoZW1lLWNhZGV0LWJsdWU7IFxuXHRcdFx0XHRcdGkuZmF7XG5cdFx0XHRcdFx0XHRjb2xvcjpAdGhlbWUtY2FkZXQtYmx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly9Nb2xlY3VsZSBTdHlsaW5nIFxuXHQucGFnZS1tb2xlY3VsZSB7XG5cdFx0aDEjbW9sZWN1bGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cblx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRcdH1cblxuXHRcdFx0LyogTWVkaXVtIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdFx0fVxuXHRcdFx0LnNtYWxsIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDVweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0I21vbGVjdWxlLXByb3BlcnRpZXMge1xuXHRcdFx0LnBhbmVse1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG5cdFx0XHR9XG5cblx0XHRcdC5tb2xlY3VsZS10YWdzIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCBAYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0XHRcdCN0cmFuc2l0aW9uIC5kZWZhdWx0LXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdGNvbG9yOiBAYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9Xb3JrYXJvdW5kIHRvb2x0aXAgc2l6ZVxuXHRcdFx0LnRvb2x0aXAtaW5uZXIge1xuXHRcdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHR9XG5cdFx0XHRoMiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjFweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMHB4O1xuXG5cdFx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDI4cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBNZWRpdW0gZGV2aWNlcyAoZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1tZC1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIExhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLWxnLW1pbikge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhweDtcblx0XHRcdFx0fVxuXHRcdFx0XHQucHJvcGVydGllcy12aWV3LW9wdGlvbnMge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly9UYWJsZSB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3IgdGhlIG1vbGVjdWxlIFxuXHRcdFx0dGFibGUge1xuXHRcdFx0XHR0ciB0ZDpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHQvL0JvbGQgdGhlIGZpcnN0IGNvbHVtblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRib2R5IHtcblx0XHRcdFx0XHR0ciB0ZCB7XG5cdFx0XHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0XHRcdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dHIgPiB0ZDpmaXJzdC1jaGlsZHtcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogMTUwcHg7IFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQubW9sZWN1bGUtYWx0LW5hbWVzIHVsIHtcblx0XHRcdFx0XHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdFx0XHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0XHRcdFx0b3ZlcmZsb3cteDogc2Nyb2xsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvL0Zvb3RlciBCdXR0b24gR3JvdXBcblx0XHRcdC5tb2xlY3VsZS1zd2l0Y2h2aWV3e1xuXHRcdFx0XHQubW9iaWxle1xuXHRcdFx0XHRcdC5idG57XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTsgXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvLzNEbW9sIHZpZXdlclxuXHRcdCNtb2xlY3VsZS12aWV3ZXIge1xuXHRcdFx0Ly9NYWtlIHRoZSAzZG1vbGUgc29tZXdoYXQgcmVzcG9uc2l2ZSBcblx0XHRcdGRpdiwgY2FudmFzIHtcblx0XHRcdFx0aGVpZ2h0OiAyNTBweDtcblxuXHRcdFx0XHQvKiBTbWFsbCBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5cdFx0XHRcdEBtZWRpYSAobWluLXdpZHRoOkBzY3JlZW4tc20tbWluKSB7XG5cdFx0XHRcdFx0aGVpZ2h0OiAzNTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIE1lZGl1bSBkZXZpY2VzIChkZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGhlaWdodDogNDAwcHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBMYXJnZSBkZXZpY2VzIChsYXJnZSBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1sZy1taW4pIHtcblx0XHRcdFx0XHRoZWlnaHQ6IDUwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8vQnJvd3NpbmcgUGFnZSBTdHlsZVxuXHQucGFnZS1icm93c2Uge1xuXHRcdCNzcGxhc2gtc2VhcmNoIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRcdCNudW0tY29tcG91bmRzIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cblx0XHRcdFx0Lm51bWJlciB7XG5cdFx0XHRcdFx0Y29sb3I6IEBicmFuZC1kYW5nZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0XG5cdFx0fVxuXG5cdFx0Ly9BSkFYIGxvYWRpbmcgYnV0dG9uIGZvciByZXN1bHRzIFxuXHRcdG5hdi5wYWdpbmF0aW9ue1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHQjbW9sZWN1bGUtYWpheC1sb2FkZXJ7XG5cdFx0XHRcdHdpZHRoOiA4MCU7IFxuXHRcdFx0fVxuXG5cdFx0XHQuY29nc3tcblx0XHRcdFx0d2lkdGg6IDQuNWVtO1xuICBcdFx0XHRcdGhlaWdodDogNC41ZW07XG4gIFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHQuY2VudGVyLWJsb2NrKCk7XG5cblx0XHRcdFx0aXtcblx0XHRcdFx0XHRmb250LXNpemU6IDJlbTtcblx0XHRcdFx0XHRjb2xvcjogQGJyYW5kLXByaW1hcnk7XG5cblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyKXtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogM2VtO1xuXHRcdFx0XHRcdFx0dG9wOiAwLjJlbTtcblx0XHRcdFx0XHRcdGxlZnQ6IDAuMTI1ZW07XG5cdFx0XHRcdFx0XHRhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMpe1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdFx0XHRcdHRvcDogMC4xZW07XG5cdFx0XHRcdFx0XHRsZWZ0OiAwLjg1ZW07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblxuXG5cdFx0XHRcblx0XHR9XG5cblx0XHQubWV0YS1kYXRhe1xuXHRcdFx0LnRleHQtY2VudGVyKCk7XG5cdFx0fVxuXG5cdH1cblx0Ly9Db250YWN0IFVTIFN0eWxpbmcgXG5cdC5wYWdlLWNvbnRhY3Qge1xuXHRcdGFkZHJlc3Mge1xuXHRcdFx0I21hdGVyaWFsIC5jYXJkcygpO1xuXHRcdFx0cGFkZGluZzogMTVweDtcblx0XHR9XG5cdH1cblx0Zm9vdGVyIHtcblx0XHQjZ3JhZGllbnQgPiAudmVydGljYWwoQHRoZW1lLWNhZGV0LWJsdWUsIGRhcmtlbihAdGhlbWUtY2FkZXQtYmx1ZSwgNSUpKTtcblx0XHRwYWRkaW5nLXRvcDogMjVweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOkBzY3JlZW4tc20tbWF4KSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZFxuXHRcdH1cblx0XHRhOmhvdmVyIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHR9XG5cdFx0LmZvb3Rlci1icmFuZCB7XG5cdFx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblx0XHQuZm9vdGVyLW1hcCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZm9vdGVyLXNvY2lhbCB7XG5cdFx0XHQuZmEge1xuXHRcdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdFx0bWluLWhlaWdodDogMS41ZW07XG5cdFx0XHRcdHRyYW5zaXRpb246IGZvbnQtc2l6ZSBAY3VzdG9tLXRyYW5zLXNwZWVkIEBjdXN0b20tdHJhbnMtdHlwZSAhaW1wb3J0YW50O1xuXG5cdFx0XHRcdC8qIFNtYWxsIGRldmljZXMgKHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cblx0XHRcdFx0QG1lZGlhIChtaW4td2lkdGg6QHNjcmVlbi1zbS1taW4pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDJlbTtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiA1cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvKiBNZWRpdW0gZGV2aWNlcyAodGFibGV0cywgNzY4cHggYW5kIHVwKSAqL1xuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDpAc2NyZWVuLW1kLW1pbikge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMi41ZW07XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5mYTpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBkYXJrZW4oI2ZmZiwgMzAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqKioqR0xPQkFMIEVMRU1FTlRTICoqKiovXG4uZmVlZGJhY2stbWVzc2FnZXMtY29udGFpbmVyIHtcblx0bWFyZ2luLWJvdHRvbTogMjJweDtcbn1cbi8vTWFrZSB0aGUgcXIgaW1nZSBnZW5lcmF0ZWQgYnkganMgcHJvcGVybHkgYWxpZ25lZFxuI3FyY29kZW1vZGFsICNxcmNvZGUgaW1nIHtcblx0LmltZy1yZXNwb25zaXZlKCk7XG5cdC5jZW50ZXItYmxvY2soKTtcbn1cbiIsIi8vXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEhlYWRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IEBoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6IEBoZWFkaW5ncy1jb2xvcjtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBAaGVhZGluZ3Mtc21hbGwtY29sb3I7XG4gIH1cbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzIHtcbiAgbWFyZ2luLXRvcDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA2NSU7XG4gIH1cbn1cbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIG1hcmdpbi10b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICB9XG59XG5cbmgxLCAuaDEgeyBmb250LXNpemU6IEBmb250LXNpemUtaDE7IH1cbmgyLCAuaDIgeyBmb250LXNpemU6IEBmb250LXNpemUtaDI7IH1cbmgzLCAuaDMgeyBmb250LXNpemU6IEBmb250LXNpemUtaDM7IH1cbmg0LCAuaDQgeyBmb250LXNpemU6IEBmb250LXNpemUtaDQ7IH1cbmg1LCAuaDUgeyBmb250LXNpemU6IEBmb250LXNpemUtaDU7IH1cbmg2LCAuaDYgeyBmb250LXNpemU6IEBmb250LXNpemUtaDY7IH1cblxuXG4vLyBCb2R5IHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxucCB7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbn1cblxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKEBmb250LXNpemUtYmFzZSAqIDEuMTUpKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICB9XG59XG5cblxuLy8gRW1waGFzaXMgJiBtaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEV4OiAoMTJweCBzbWFsbCBmb250IC8gMTRweCBiYXNlIGZvbnQpICogMTAwJSA9IGFib3V0IDg1JVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IGZsb29yKCgxMDAlICogQGZvbnQtc2l6ZS1zbWFsbCAvIEBmb250LXNpemUtYmFzZSkpO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RhdGUtd2FybmluZy1iZztcbiAgcGFkZGluZzogLjJlbTtcbn1cblxuLy8gQWxpZ25tZW50XG4udGV4dC1sZWZ0ICAgICAgICAgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi50ZXh0LXJpZ2h0ICAgICAgICAgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ZXh0LWNlbnRlciAgICAgICAgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udGV4dC1qdXN0aWZ5ICAgICAgICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbi50ZXh0LW5vd3JhcCAgICAgICAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vLyBUcmFuc2Zvcm1hdGlvblxuLnRleHQtbG93ZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4udGV4dC11cHBlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbi50ZXh0LWNhcGl0YWxpemUgICAgIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLy8gQ29udGV4dHVhbCBjb2xvcnNcbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xufVxuLnRleHQtcHJpbWFyeSB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLnRleHQtc3VjY2VzcyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG59XG4udGV4dC1pbmZvIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtaW5mby10ZXh0KTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLXRleHQpO1xufVxuLnRleHQtZGFuZ2VyIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtZGFuZ2VyLXRleHQpO1xufVxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG4vLyBGb3Igbm93IHdlJ2xsIGxlYXZlIHRoZXNlIGFsb25nc2lkZSB0aGUgdGV4dCBjbGFzc2VzIHVudGlsIHY0IHdoZW4gd2UgY2FuXG4vLyBzYWZlbHkgc2hpZnQgdGhpbmdzIGFyb3VuZCAocGVyIFNlbVZlciBydWxlcykuXG4uYmctcHJpbWFyeSB7XG4gIC8vIEdpdmVuIHRoZSBjb250cmFzdCBoZXJlLCB0aGlzIGlzIHRoZSBvbmx5IGNsYXNzIHRvIGhhdmUgaXRzIGNvbG9yIGludmVydGVkXG4gIC8vIGF1dG9tYXRpY2FsbHkuXG4gIGNvbG9yOiAjZmZmO1xuICAuYmctdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4uYmctc3VjY2VzcyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5iZy1pbmZvIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWluZm8tYmcpO1xufVxuLmJnLXdhcm5pbmcge1xuICAuYmctdmFyaWFudChAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uYmctZGFuZ2VyIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cblxuLy8gUGFnZSBoZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKTtcbiAgbWFyZ2luOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMikgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yO1xufVxuXG5cbi8vIExpc3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFVub3JkZXJlZCBhbmQgT3JkZXJlZCBsaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIExpc3Qgb3B0aW9uc1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgLmxpc3QtdW5zdHlsZWQoKTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgfVxufVxuXG4vLyBEZXNjcmlwdGlvbiBMaXN0c1xuZGwge1xuICBtYXJnaW4tdG9wOiAwOyAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuLy8gSG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIERlZmF1bHRzIHRvIGJlaW5nIHN0YWNrZWQgd2l0aG91dCBhbnkgb2YgdGhlIGJlbG93IHN0eWxlcyBhcHBsaWVkLCB1bnRpbCB0aGVcbi8vIGdyaWQgYnJlYWtwb2ludCBpcyByZWFjaGVkIChkZWZhdWx0IG9mIH43NjhweCkuXG5cbi5kbC1ob3Jpem9udGFsIHtcbiAgZGQge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBDbGVhciB0aGUgZmxvYXRlZCBgZHRgIGlmIGFuIGVtcHR5IGBkZGAgaXMgcHJlc2VudFxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAoQGRsLWhvcml6b250YWwtb2Zmc2V0IC0gMjApO1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIC50ZXh0LW92ZXJmbG93KCk7XG4gICAgfVxuICAgIGRkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZGwtaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBYmJyZXZpYXRpb25zIGFuZCBhY3Jvbnltc1xuYWJiclt0aXRsZV0sXG4vLyBBZGQgZGF0YS0qIGF0dHJpYnV0ZSB0byBoZWxwIG91dCBvdXIgdG9vbHRpcCBwbHVnaW4sIHBlciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzUyNTdcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgQGFiYnItYm9yZGVyLWNvbG9yO1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLy8gQmxvY2txdW90ZXNcbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW46IDAgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogQGJsb2NrcXVvdGUtZm9udC1zaXplO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcblxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vdGU6IERlcHJlY2F0ZWQgc21hbGwgYW5kIC5zbWFsbCBhcyBvZiB2My4xLjBcbiAgLy8gQ29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY2MFxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogODAlOyAvLyBiYWNrIHRvIGRlZmF1bHQgZm9udC1zaXplXG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAYmxvY2txdW90ZS1zbWFsbC1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgLy8gZW0gZGFzaCwgbmJzcFxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHBvc2l0ZSBhbGlnbm1lbnQgb2YgYmxvY2txdW90ZVxuLy9cbi8vIEhlYWRzIHVwOiBgYmxvY2txdW90ZS5wdWxsLXJpZ2h0YCBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mIHYzLjEuMC5cbi5ibG9ja3F1b3RlLXJldmVyc2UsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIEBibG9ja3F1b3RlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gIC8vIEFjY291bnQgZm9yIGNpdGF0aW9uXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgJjpiZWZvcmUgeyBjb250ZW50OiAnJzsgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnOyAvLyBuYnNwLCBlbSBkYXNoXG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHJlc3Nlc1xuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuI2dyYWRpZW50IHtcblxuICAvLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAudmVydGljYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC5kaXJlY3Rpb25hbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIH1cbiAgLmhvcml6b250YWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC52ZXJ0aWNhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAucmFkaWFsKEBpbm5lci1jb2xvcjogIzU1NTsgQG91dGVyLWNvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnN0cmlwZWQoQGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7IEBhbmdsZTogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG4uaW1nLXJldGluYShAZmlsZS0xeDsgQGZpbGUtMng7IEB3aWR0aC0xeDsgQGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBAd2lkdGgtMXggQGhlaWdodC0xeDtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */ diff --git a/pqr/templates/skeleton/base.html b/pqr/templates/skeleton/base.html index fda4829..09a23a9 100644 --- a/pqr/templates/skeleton/base.html +++ b/pqr/templates/skeleton/base.html @@ -132,12 +132,24 @@ + + + + - + + + + + + + + + {% endblock %} diff --git a/pqr/test.py b/pqr/test.py new file mode 100644 index 0000000..f7d3fe0 --- /dev/null +++ b/pqr/test.py @@ -0,0 +1,197 @@ +import cProfile +import re +import os +from pymongo import MongoClient +from htmlmin.minify import html_minify +from settings import APP_JSON, APP_MOL2, APP_ARTICLES +from difflib import SequenceMatcher as SM +import ujson as json +from Levenshtein import ratio +#import json + +Masses = dict(H=1.01, He=4.00, Li=6.94, Be=9.01, B=10.81, C=12.01, + N=14.01, O=16.00, F=19.00, Ne=20.18, Na=22.99, Mg=24.31, + Al=26.98, Si=28.09, P=30.97, S=32.07, Cl=35.45, Ar=39.95, + K=39.10, Ca=40.08, Sc=44.96, Ti=47.87, V=50.94, Cr=52.00, + Mn=54.94, Fe=55.85, Co=58.93, Ni=58.69, Cu=63.55, Zn=65.39, + Ga=69.72, Ge=72.61, As=74.92, Se=78.96, Br=79.90, Kr=83.80, + Rb=85.47, Sr=87.62, Y=88.91, Zr=91.22, Nb=92.91, Mo=95.94, + Tc=98.00, Ru=101.07, Rh=102.91, Pd=106.42, Ag=107.87, + Cd=112.41, In=114.82, Sn=118.71, Sb=121.76, Te=127.60, + I=126.90, Xe=131.29, Cs=132.91, Ba=137.33, La=138.91, + Ce=140.12, Pr=140.91, Nd=144.24, Pm=145.00, Sm=150.36, + Eu=151.96, Gd=157.25, Tb=158.93, Dy=162.50, Ho=164.93, + Er=167.26, Tm=168.93, Yb=173.04, Lu=174.97, Hf=178.49, + Ta=180.95, W=183.84, Re=186.21, Os=190.23, Ir=192.22, + Pt=195.08, Au=196.97, Hg=200.59, Tl=204.38, Pb=207.2, + Bi=208.98, Po=209.00, At=210.00, Rn=222.00, Fr=223.00, + Ra=226.00, Ac=227.00, Th=232.04, Pa=231.04, U=238.03, + Np=237.00, Pu=244.00, Am=243.00, Cm=247.00, Bk=247.00, + Cf=251.00, Es=252.00, Fm=257.00, Md=258.00, No=259.00, + Lr=262.00, Rf=261.00, Db=262.00, Sg=266.00, Bh=264.00, + Hs=269.00, Mt=268.00) + + +def chunks(l, n): + """ Yield successive n-sized chunks from l. + """ + for i in xrange(0, len(l), n): + yield l[i:i + n] + +def similar(x, f, m0, query): + #print x + #if isinstance(x, list): + # score_list = map(lambda z: similar(z, f, m0, query), x) + # return sum(score_list) + #else: + # if x in query: + if query in x: + score = 10 + ratio(x.encode('utf8', 'ignore'), query.encode('utf8', 'ignore')) + m0 / formula2mass(f) + else: + score = ratio(x.encode('utf8', 'ignore'), query.encode('utf8', 'ignore')) + m0 / formula2mass(f) + return score + +def formula2mass(f): + s = re.findall('([A-Z][a-z]?)([0-9]*)', f) + compoundweight = 0 + for element, count in s: + count = int(count or '1') + compoundweight += Masses[element] * count + return compoundweight +# element_pat = re.compile("([A-Z][a-z]?)(\d*)") +# sum_weight = 0 +# for (element_name, count) in element_pat.findall("CH3COOH"): +# if count == "": +# count = 1 +# else: +# count = int(count) +# sum_weight += Masses[element_name] * count +# return sum_weight + +def get_json_data_file(key_first_two, key): + try: + # Loads the JSON file relevant to the InChI key requested + with open(os.path.join(APP_JSON, key_first_two + '/' + key + '.json')) as j: + return json.load(j) + except IOError: + # If we don't have the key, flash + return False + +def browse(query="water", searchType="name", page_num="1"): + + # Get the page number that is passed in + # If negative, make it positive + # If no page number is passed in, assume it is 1 + try: + page_num = abs(int(page_num)) + except ValueError: + page_num = 1 + + # If there was no query searched for, flash and go to home + if query == "-1": + flash( + "You didn't search for anything! You have been redirected to the home page.", 'redirect') + return "" + + # Initialize the Mongo client + client = MongoClient() + db = client.test + + results = [] + + # Do a text search for the passed in query + if searchType == 'formula': + query = query.upper() + elif searchType == 'tag': + searchType = 'tags' + elif searchType == 'synonym': + searchType = 'synonyms' + elif searchType == 'inchi': + searchType = 'inchikey' + query = query.upper() + if query in redirect_table.keys(): + query = redirect_table[query] + cursor = db.molecules.find({str(searchType): str(query)}).limit(500) + + # Append all dicts in the cursor to a results array + for i in cursor: + i["mol2url"] = i["inchikey"][:2] + "/" + i["inchikey"] + i["json_data"] = get_json_data_file(i["inchikey"][:2], i["inchikey"]) + results.append(i) + + if len(results) == 0: + cursor = db.molecules.find({"$text": {"$search": str(query)}}) + for i in cursor: + i["mol2url"] = i["inchikey"][:2] + "/" + i["inchikey"] + try: + i["json_data"] = get_json_data_file(i["inchikey"][:2], i["inchikey"]) + results.append(i) + except: + if len(list(cursor)) == 0: + rendered_html = "" + min_html = html_minify(rendered_html.encode('utf8')) + return min_html + + + # Find lightest molecule to normalize mass-based search + temp = sorted( + map(lambda x: x["formula"], results), key=lambda x: formula2mass(x)) + lightest = formula2mass(temp[0]) if temp else 1e12 + + results = sorted(results, key=lambda x: similar( + x[searchType], x['formula'], lightest, str(query)), reverse=True) + + # If there is only one result, show that molecule page directly + total_results = len(results) + if total_results == 1: + return "" + + # Split the reults array into chunks of 50 each for search pagination - 50 for AJAX (May want to change) + tempArr = list(chunks(results, 100)) + + # The number of pages is just the total number of chunks + num_pages = len(tempArr) + + # If the number of pages is more than 0, return the N-1th page to the template + # If the number of pages is 0, that means there are no results, so results = None + # If an index that doesn't exist is accessed (user manually making a URL query), + # then just go to the first page of results + try: + if num_pages > 0: + results = tempArr[page_num - 1] + else: + results = None + except IndexError: + results = tempArr[0] + + page = {'id': "page-browse"} + + # This is to tell the front-end which page the user is on + # If no page_num was passed in and there are multiple pages, first page is active + # Else if no page_num was passed in and there is one page, make active -1 to hide pager + # If the user passes is a page_num greater than the number of pages, then first page + # Else the active page is just whatever page the user is on + if page_num == -1 and num_pages > 1: + active = 1 + elif page_num == -1 and num_pages == 1: + active = -1 + else: + if page_num > num_pages: + active = 1 + else: + active = page_num + + rendered_html = "" + min_html = html_minify(rendered_html.encode('utf8')) + return min_html + +import cProfile, pstats, StringIO +pr = cProfile.Profile() +pr.enable() +browse("acid", "name", "1") +pr.disable() +s = StringIO.StringIO() +sortby = 'tottime' +ps = pstats.Stats(pr, stream=s).sort_stats(sortby) +ps.print_stats() +print s.getvalue()