.printonly { display: block !important; }

.blurred { -webkit-filter: none; filter: none; overflow: visible; }

.blurred::after { display: none; }

*, *::before, *::after { -webkit-box-shadow: none !important; box-shadow: none !important; text-shadow: none !important; -webkit-transition: none !important; transition: none !important; -webkit-animation: none !important; animation: none !important; }

.p-body { width: 1460px; }

.p-body.noscroll { overflow: visible; }

header { position: static !important; }

footer .c-signup { display: none !important; }

.footer__wrap { display: block !important; padding: 1rem 2rem; }

.footer__wrap .btn-text { display: none; }

.footer__nav { display: none !important; }

.footer-siteinfo { margin: 0; color: #000; font-size: 1rem; }

.footer-siteinfo__item { display: none; }

.footer-siteinfo__item.copyright { display: block; }

thead { display: table-row-group; }

.c-spotlight, .c-gallery, .c-featurebar, .c-productrelated { page-break-inside: avoid; }

@page { .printview--comparison { size: landscape; } }

.printview--comparison .p-main { display: none; }

.printview--comparison .c-productcompare { position: relative; top: 0; height: auto; padding: 2rem 0; }

.printview--comparison .c-productcompare__buttons, .printview--comparison .c-productcompare .btn-icon { display: none; }

.printview--comparison .c-productcompare__pulltab { position: static; }

.printview--comparison .c-productcompare__wrap { overflow: visible !important; }

.printview--comparison .c-productcompare__content { display: block; padding: 2rem; -webkit-box-shadow: none; box-shadow: none; }

.printview--comparison .c-productcompare .c-tabs__index, .printview--comparison .c-productcompare .c-tabs__hilite, .printview--comparison .c-productcompare .c-tabs__select { display: none; }

.printview--comparison .c-productcompare .c-tabs__content > div { position: relative; opacity: 1; height: auto; overflow: visible; padding: 1rem 0; }

.printview--comparison .c-productcompare .c-tabs__content > div + div { page-break-before: always; }

.printview--comparison .c-productcompare__tools { margin-top: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuY3NzIiwic291cmNlcyI6WyJwcmludC5zY3NzIiwidmVuZG9yL19mb250ZWxsby12YXJpYWJsZXMuc2NzcyIsInV0aWxpdHkvX3ZhcmlhYmxlcy5zY3NzIiwidXRpbGl0eS9fbWl4aW5zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBQcmludFxuLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG5cbkBpbXBvcnRcbiAgJ3ZlbmRvci9mb250ZWxsby12YXJpYWJsZXMnO1xuXG5AaW1wb3J0XG4gICd1dGlsaXR5L3ZhcmlhYmxlcycsXG4gICd1dGlsaXR5L21peGlucyc7XG5cblxuLnByaW50b25seSB7XG4gIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcbn1cblxuLmJsdXJyZWQge1xuICBmaWx0ZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAvL2NvbG9yOiAkY29sb3ItYmxhY2sgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAvL3RyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAvL29wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLnAtYm9keSB7XG4gIHdpZHRoOiAxNDYwcHg7XG5cbiAgJi5ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cblxuaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xufVxuXG5mb290ZXIgLmMtc2lnbnVwIHtcbiAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi5mb290ZXIge1xuICAmX193cmFwIHtcbiAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xuXG4gICAgLmJ0bi10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICZfX25hdiB7XG4gICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLXNpdGVpbmZvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICAmX19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAmLmNvcHlyaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zOTUxNjg4NS93b3JrYXJvdW5kLWZvci1jaHJvbWUtNTMtcHJpbnRpbmctdGFibGUtaGVhZGVyLXR3aWNlLW9uLTJuZC1hbmQtbGF0ZXItcGFnZXNcbnRoZWFkIHtcbiAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwO1xufVxuXG4vLyBwcmV2ZW50IHBhZ2UgYnJlYWtzIGluIGNvbXBvbmVudHNcbi5jLXNwb3RsaWdodCxcbi5jLWdhbGxlcnksXG4uYy1mZWF0dXJlYmFyLFxuLmMtcHJvZHVjdHJlbGF0ZWQge1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cblxuLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBQcmludCB2aWV3IG9mIHNwZWNpZmljIHBhZ2UgbGF5b3V0cyBvciBzZWN0aW9uc1xuLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG5cbi5wcmludHZpZXcge1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcm9kdWN0IENvbXBhcmlzb24gdGFiXG4gICYtLWNvbXBhcmlzb24ge1xuICAgIEBwYWdlIHtcbiAgICAgIHNpemU6IGxhbmRzY2FwZTtcbiAgICB9XG5cbiAgICAucC1tYWluIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmMtcHJvZHVjdGNvbXBhcmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAmX19idXR0b25zLFxuICAgICAgLmJ0bi1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgICZfX3B1bGx0YWIge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgfVxuICAgICAgJl9fd3JhcCB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgICAuYy10YWJzIHtcbiAgICAgICAgJl9faW5kZXgsXG4gICAgICAgICZfX2hpbGl0ZSxcbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZfX2NvbnRlbnQgPiBkaXYge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgICArIGRpdiB7XG4gICAgICAgICAgICBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9fdG9vbHMge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGZvbnRlbGxvLXZlcnNpb246IFwiMTc5MDM3ODJcIjtcblxuLy86Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlxuQGZ1bmN0aW9uIGdldGljb24oJG5hbWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRmb250ZWxsby1pY29ucywgJG5hbWUpO1xufVxuXG4kZm9udGVsbG8taWNvbnM6IChcbiAgXCJhbmdsZS1kb3duXCI6IFwiXFxmMTA3XCIsXG4gIFwiYW5nbGUtbGVmdFwiOiBcIlxcZjEwNFwiLFxuICBcImFuZ2xlLXJpZ2h0XCI6IFwiXFxmMTA1XCIsXG4gIFwiYW5nbGUtdXBcIjogXCJcXGYxMDZcIixcbiAgXCJiaWctZ2FtZVwiOiBcIlxcZTgxNVwiLFxuICBcImJpbm9jdWxhcnNcIjogXCJcXGYxZTVcIixcbiAgXCJjYW5jZWxcIjogXCJcXGU4MDVcIixcbiAgXCJjYW5jZWwtY2lyY2xlXCI6IFwiXFxlODA0XCIsXG4gIFwiY2lyY2xlLWVtcHR5XCI6IFwiXFxmMTBjXCIsXG4gIFwiY2xvc2VcIjogXCJcXGU4MjVcIixcbiAgXCJjb21wZXRpdGl2ZVwiOiBcIlxcZTgxZFwiLFxuICBcImRlZXJcIjogXCJcXGU4MTRcIixcbiAgXCJkb2MtdGV4dFwiOiBcIlxcZjBmNlwiLFxuICBcImRvd25cIjogXCJcXGYxNzVcIixcbiAgXCJkb3dubG9hZFwiOiBcIlxcZTgwY1wiLFxuICBcImZhY2Vib29rXCI6IFwiXFxmMDlhXCIsXG4gIFwiZmlyZWFybXNcIjogXCJcXGU4MjJcIixcbiAgXCJmb3J3YXJkXCI6IFwiXFxlODBkXCIsXG4gIFwiZ3JpZFwiOiBcIlxcZTgxM1wiLFxuICBcImhhbmRndW5cIjogXCJcXGU4MWVcIixcbiAgXCJoZWxwXCI6IFwiXFxmMTI4XCIsXG4gIFwiaW5zdGFncmFtXCI6IFwiXFxmMTZkXCIsXG4gIFwibGVmdFwiOiBcIlxcZjE3N1wiLFxuICBcImxpc3RcIjogXCJcXGU4MTJcIixcbiAgXCJsb2NhdGlvblwiOiBcIlxcZTgwMVwiLFxuICBcIm1haWxcIjogXCJcXGU4MTFcIixcbiAgXCJtZW51XCI6IFwiXFxmMGM5XCIsXG4gIFwibW9yZS1ob3Jpem9udGFsXCI6IFwiXFxlODI0XCIsXG4gIFwibW9yZS12ZXJ0aWNhbFwiOiBcIlxcZTgyM1wiLFxuICBcIm9rXCI6IFwiXFxlODA2XCIsXG4gIFwib2stY2lyY2xlXCI6IFwiXFxlODA3XCIsXG4gIFwicGVuY2lsXCI6IFwiXFxlODEwXCIsXG4gIFwicGVyc29uYWwtZGVmZW5zZVwiOiBcIlxcZTgxYlwiLFxuICBcInBsYXktY2lyY2xlMlwiOiBcIlxcZTgwMlwiLFxuICBcInBsdXNcIjogXCJcXGU4MjZcIixcbiAgXCJwbHVzLWNpcmNsZVwiOiBcIlxcZTgwM1wiLFxuICBcInByZWRhdG9yLXZhcm1pbnRcIjogXCJcXGU4MThcIixcbiAgXCJwcmludFwiOiBcIlxcZTgwOFwiLFxuICBcInJlY3JlYXRpb25hbFwiOiBcIlxcZTgxY1wiLFxuICBcInJlc2l6ZS1mdWxsXCI6IFwiXFxlODBlXCIsXG4gIFwicmVzaXplLXNtYWxsXCI6IFwiXFxlODBmXCIsXG4gIFwicmlmbGVcIjogXCJcXGU4MWZcIixcbiAgXCJyaWdodFwiOiBcIlxcZjE3OFwiLFxuICBcInJpbWZpcmVcIjogXCJcXGU4MjFcIixcbiAgXCJzZWFyY2hcIjogXCJcXGU4MDlcIixcbiAgXCJzaG90c2hlbGxcIjogXCJcXGU4MjBcIixcbiAgXCJzbGlkZXJzXCI6IFwiXFxmMWRlXCIsXG4gIFwic21hbGwtZ2FtZVwiOiBcIlxcZTgxOVwiLFxuICBcInN0YXItZW1wdHlcIjogXCJcXGU4MGJcIixcbiAgXCJzdWl0Y2FzZVwiOiBcIlxcZjBmMlwiLFxuICBcInQtc2hpcnRcIjogXCJcXGU4MDBcIixcbiAgXCJ0YXJnZXRcIjogXCJcXGU4MGFcIixcbiAgXCJ0cmFzaFwiOiBcIlxcZjFmOFwiLFxuICBcInR1cmtleVwiOiBcIlxcZTgxYVwiLFxuICBcInR3aXR0ZXJcIjogXCJcXGYwOTlcIixcbiAgXCJ1cFwiOiBcIlxcZjE3NlwiLFxuICBcInVwbGFuZFwiOiBcIlxcZTgxN1wiLFxuICBcIndhdGVyZm93bFwiOiBcIlxcZTgxNlwiLFxuICBcInlvdXR1YmUtcGxheVwiOiBcIlxcZjE2YVwiXG4pO1xuIiwiLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBWYXJpYWJsZXNcbi8vIDo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlxuXG4vLyBDb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRjb2xvci1ibGFjazogICAgICMwMDA7XG4kY29sb3ItZ3JleS1kazogICAjOTk5O1xuJGNvbG9yLWdyZXktZGsyOiAgIzY2NjtcbiRjb2xvci1ncmV5LWRrMzogICMxYzFjMWM7XG4kY29sb3ItZ3JleS1kazQ6ICAjMjQyNDI0O1xuJGNvbG9yLWdyZXktZGs1OiAgIzMzMztcbiRjb2xvci1ncmV5LW1pZDogICNjY2M7XG4kY29sb3ItZ3JleS1taWQyOiAjZWNlY2VjO1xuJGNvbG9yLWdyZXktbHQ6ICAgI2Y1ZjVmNTtcbiRjb2xvci1yZWQ6ICAgICAgICNjMDA7XG4kY29sb3ItcmVkLWx0OiAgICAjZmUwMDAwO1xuJGNvbG9yLXJlZC1vcDY1OiAgcmdiYSgyMDQsIDAsIDAsIDAuNjUpO1xuJGNvbG9yLXJlZC1vcDc1OiAgcmdiYSgyMDQsIDAsIDAsIDAuNzUpO1xuJGNvbG9yLXdoaXRlOiAgICAgI2ZmZjtcblxuJGNvbG9yLWJsdWU6ICAgICAgIzdiYjliYjtcbiRjb2xvci15ZWxsb3c6ICAgICNlYWJhMzQ7XG4kY29sb3ItcGluazogICAgICAjYjU2MWEwO1xuJGNvbG9yLWdyZWVuOiAgICAgI2E4YWYxMztcblxuJGNvbG9yLXByb2R1Y3QxOiAgJGNvbG9yLWJsdWU7XG4kY29sb3ItcHJvZHVjdDI6ICAkY29sb3IteWVsbG93O1xuJGNvbG9yLXByb2R1Y3QzOiAgJGNvbG9yLXBpbms7XG4kY29sb3ItcHJvZHVjdDQ6ICAkY29sb3ItZ3JlZW47XG5cbiRjb2xvcnM6IChcbiAgJ2JsYWNrJzogICAgICRjb2xvci1ibGFjayxcbiAgJ2dyZXktZGsnOiAgICRjb2xvci1ncmV5LWRrLFxuICAnZ3JleS1kazInOiAgJGNvbG9yLWdyZXktZGsyLFxuICAnZ3JleS1kazMnOiAgJGNvbG9yLWdyZXktZGszLFxuICAnZ3JleS1kazQnOiAgJGNvbG9yLWdyZXktZGs0LFxuICAnZ3JleS1kazUnOiAgJGNvbG9yLWdyZXktZGs1LFxuICAnZ3JleS1taWQnOiAgJGNvbG9yLWdyZXktbWlkLFxuICAnZ3JleS1taWQyJzogJGNvbG9yLWdyZXktbWlkMixcbiAgJ2dyZXktbHQnOiAgICRjb2xvci1ncmV5LWx0LFxuICAncmVkJzogICAgICAgJGNvbG9yLXJlZCxcbiAgJ3JlZC1sdCc6ICAgICRjb2xvci1yZWQtbHQsXG4gICdyZWQtb3A2NSc6ICAkY29sb3ItcmVkLW9wNjUsXG4gICdyZWQtb3A3NSc6ICAkY29sb3ItcmVkLW9wNzUsXG4gICd3aGl0ZSc6ICAgICAkY29sb3Itd2hpdGUsXG4gICdibHVlJzogICAgICAkY29sb3ItYmx1ZSxcbiAgJ3llbGxvdyc6ICAgICRjb2xvci15ZWxsb3csXG4gICdwaW5rJzogICAgICAkY29sb3ItcGluayxcbiAgJ2dyZWVuJzogICAgICRjb2xvci1ncmVlblxuKTtcblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwYWdlLW1pbi13aWR0aDogMjByZW07ICAgICAvLyAzMjBcbiRwYWdlLW1vYmlsZS1zaWRlLXBhZGRpbmc6IDFyZW07XG4kY29udGVudC1tYXgtd2lkdGg6IDEwMHJlbTsgLy8gMTYwMFxuJGhlYWRlci11bml2LWhlaWdodDogNDBweDtcbiRoZWFkZXItbWVudS1oZWlnaHQ6IDYwcHg7XG4kaGVhZGVyLXV0aWwtd2lkdGg6IDEzLjVyZW07XG4kZ3V0dGVyOiAzLjc1cmVtOyAgLy8gNjBcbiRnYWxsZXJ5Z3V0dGVyOiAwLjc1cmVtO1xuJGdhbGxlcnlndXR0ZXItd2lkZXI6IDEuMjVyZW07XG4kY29udHJvbC1oZWlnaHQ6IDNyZW07XG5cbiRicmVha3BvaW50czogKFxuICB4czogMCxcbiAgbWluOiAzMjBweCxcbiAgc21wOiA0MjBweCxcbiAgc206IDY0MHB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiAxMDI0cHgsXG4gIHhsOiAxMjAwcHgsXG4gIHh4bDogMTQwMHB4LFxuICB4eHhsOiAxNjAwcHhcbik7XG5cbiR6aW5kZXg6IChcbiAgbmF2cHJpbWFyeTogMTEsXG4gIG5hdnV0aWw6IDEyLFxuICBibHVyOiAyMCxcbiAgbmF2OiAyMSxcbiAgcG9wdXA6IDIyLFxuICBidG5jbG9zZTogMjNcbik7XG5cbiRzaWdudXAtZGlhbG9nLWhlaWdodDogNi4yNXJlbTtcblxuXG4vLyBUeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZm9udHMtc2FuczogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuJGZvbnRzLXNlcmlmOiAnTWVycml3ZWF0aGVyJywgc2VyaWY7XG5cbiR3ZWlnaHQtbGlnaHQ6IDMwMDtcbiR3ZWlnaHQtbm9ybTogNDAwO1xuJHdlaWdodC1tZWRpdW06IDUwMDtcbiR3ZWlnaHQtc2VtaTogNjAwO1xuJHdlaWdodC1ib2xkOiA3MDA7XG5cbiRiYXNlLWZvbnQtc2l6ZTogMTY7XG5cbiRpY29uLXNtYWxsZXItZm9udC1zaXplOiAwLjc1ZW07XG5cblxuLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBGdW5jdGlvbnNcbi8vIDo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlxuXG5AZnVuY3Rpb24gcmVtKCRweCwgJGJhc2U6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAcmV0dXJuICgkcHggLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBNaXhpbnNcbi8vIDo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlxuXG4vL3NlbGYtY2xlYXIgZmxvYXRzOiBzZWUgaHR0cDovL2Nzcy10cmlja3MuY29tL2FsbC1hYm91dC1mbG9hdHMvXG5AbWl4aW4gc2VsZmNsZWFyIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGhlaWdodDogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cbn1cblxuXG4vL2ZvbnRhd2Vzb21lIHdpdGhvdXQgPGk+IHRhZ3NcbkBtaXhpbiBzaG93Z2x5cGhiYXNlKCRpY29ubmFtZSwgJGZvbnRzaXplOiBpbmhlcml0LCAkZm9udGZhbWlseTogZm9udGVsbG8pIHtcbiAgY29udGVudDogZ2V0aWNvbigkaWNvbm5hbWUpO1xuICBmb250LWZhbWlseTogJGZvbnRmYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGZvbnRzaXplO1xuICAvL2xpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbkBtaXhpbiBzaG93Z2x5cGgoJGljb25uYW1lLCAkZm9udHNpemU6IGluaGVyaXQsICRwc2V1ZG9hZnRlcjogdHJ1ZSkge1xuICBAaWYgKCRwc2V1ZG9hZnRlcikge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHNob3dnbHlwaGJhc2UoJGljb25uYW1lLCAkZm9udHNpemUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBzaG93Z2x5cGhiYXNlKCRpY29ubmFtZSwgJGZvbnRzaXplKTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xuICAgIEBtZWRpYSBwcmludCwgKG1pbi13aWR0aDogI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIlVuZm9ydHVuYXRlbHksIG5vIHZhbHVlIGNvdWxkIGJlIHJldHJpZXZlZCBmcm9tIGAjeyRicmVha3BvaW50fWAuIFwiXG4gICAgICAgICsgXCJQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AgbWFwLlwiO1xuICB9XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWJldHdlZW4oJGJyZWFrcG9pbnQxLCAkYnJlYWtwb2ludDIpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQxKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQyKSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAje21hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludDEpfSkgYW5kIChtYXgtd2lkdGg6ICgje21hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludDIpfSAtIDEpKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJVbmZvcnR1bmF0ZWx5LCBubyB2YWx1ZSBjb3VsZCBiZSByZXRyaWV2ZWQgZnJvbSBvbmUgb2Y6IGAjeyRicmVha3BvaW50MX1gIG9yIGAjeyRicmVha3BvaW50Mn1gLiBcIlxuICAgICAgICArIFwiUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgIG1hcC5cIjtcbiAgfVxufVxuXG5AbWl4aW4gYnRuLWljb24tdHJhbnNwYXJlbnRiZygkY29sb3I6IGluaGVyaXQpIHtcbiAgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyIC5pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcmVkO1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cbn1cblxuQG1peGluIGNhbGxvdXQtaGlkZGVuLWFycm93ICgkaG92ZXJsZWZ0c2hpZnQ6IHRydWUpIHtcblxuICAuY2FsbG91dC10ZXh0LFxuICA+IHNwYW4ge1xuICAgIEBpbmNsdWRlIHNob3dnbHlwaCgncmlnaHQnKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICBAaWYgKCRob3ZlcmxlZnRzaGlmdCkge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2Utb3V0O1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG4gICAgfVxuXG4gICAgLy8gc2VlIGFsc286IGh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTMvMDgvYWJzb2x1dGUtaG9yaXpvbnRhbC12ZXJ0aWNhbC1jZW50ZXJpbmctY3NzL1xuICAgICY6OmFmdGVyIHtcbiAgICAgIG1hcmdpbjogYXV0byBhdXRvIGF1dG8gMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDAuNWVtKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB0cmFuc2l0aW9uOiBtYXJnaW4gMzAwbXMgZWFzZS1vdXQsIG9wYWNpdHkgMjAwbXM7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtcztcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaWYgKCRob3ZlcmxlZnRzaGlmdCkge1xuICAgICAgLmNhbGxvdXQtdGV4dCxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIGxlZnQ6IC0wLjdlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNhbGxvdXQtdGV4dCxcbiAgICA+IHNwYW4ge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2FsbG91dC1saW5rLWFycm93KCRjb2xvcjogJGNvbG9yLXJlZCwgJGhvdmVyczogdHJ1ZSwgJHRyYW5zaXRpb246IDMwMG1zKSB7XG4gIHNwYW4ge1xuICAgIEBpbmNsdWRlIHNob3dnbHlwaCgncmlnaHQnKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIEBpZiAoJGhvdmVycykge1xuICAgICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uIGVhc2Utb3V0O1xuICAgIH1cblxuICAgIC8vIHNlZSBhbHNvOiBodHRwczovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDEzLzA4L2Fic29sdXRlLWhvcml6b250YWwtdmVydGljYWwtY2VudGVyaW5nLWNzcy9cbiAgICAmOjphZnRlciB7XG4gICAgICAvL2hlaWdodDogMWVtO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgLy9saW5lLWhlaWdodDogMS4zO1xuICAgICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uIGVhc2Utb3V0O1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkaG92ZXJzKSB7XG4gICAgJjpob3ZlciBzcGFuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC4yNWVtO1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBpcyBqdXN0IGhvcml6b250YWwgY2VudGVyaW5nXG5AbWl4aW4gY2VudGVyZWQtYmxvY2soJG1heHdpZHRoOiAkY29udGVudC1tYXgtd2lkdGgpIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAkcGFnZS1tb2JpbGUtc2lkZS1wYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFnZS1tb2JpbGUtc2lkZS1wYWRkaW5nO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAobGcpIHtcbiAgICBtYXgtd2lkdGg6ICRtYXh3aWR0aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWl4aW4gc2V0Z3V0dGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAobGcpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ3V0dGVyIC8gNCk7XG4gICAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyA0KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50LXVwKHhsKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGd1dHRlciAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG4gIH1cbn1cblxuXG4vLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBjZW50ZXJpbmcgb2YgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRcbkBtaXhpbiBjb3ZlcmZpdCAoJHZlcnRQb3M6IGNlbnRlciwgJGhvcml6UG9zOiBjZW50ZXIpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwO1xuXG4gIGltZyxcbiAgdmlkZW8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246ICR2ZXJ0UG9zICRob3JpelBvcztcbiAgfVxuXG4gIEBhdC1yb290IC5uby1vYmplY3RmaXQgJiB7XG4gICAgaW1nLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICBAaWYgKCR2ZXJ0UG9zID09IGNlbnRlciBhbmQgJGhvcml6UG9zID09IGNlbnRlcikge1xuICAgICAgaW1nLFxuICAgICAgdmlkZW8ge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaWYgKCR2ZXJ0UG9zID09IHRvcCBhbmQgJGhvcml6UG9zID09IHJpZ2h0KSB7XG4gICAgICBpbWcsXG4gICAgICB2aWRlbyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGlmIHdlIG5lZWQgdGhlIG90aGVyIHBvc2l0aW9ucywgd2UnbGwgYWRkIHRoZW0uXG4gICAgLy8gcmlnaHQgbm93LCB0aGVzZSBhcmUgYWxsIHdlIG5lZWQuXG4gIH1cbn1cbi8vYWx0ZXJuYXRpdmUgZm9yIGNlbnRlcmluZyBlbGVtZW50OlxuLy8gQG1peGluIGNvdmVyZml0MiB7XG4vLyAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4vLyAgIG1pbi13aWR0aDogMTAwJTtcbi8vICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4vLyAgIHdpZHRoOiBhdXRvO1xuLy8gICBtYXJnaW46IGF1dG87XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogLTEwMCU7XG4vLyAgIHJpZ2h0OiAtMTAwJTtcbi8vICAgdG9wOiAtMTAwJTtcbi8vICAgYm90dG9tOiAtMTAwJTtcbi8vIH1cblxuQG1peGluIGFsaWduZWRzcXVhcmVibG9jaygkaGVpZ2h0KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgd2lkdGg6ICRoZWlnaHQ7XG59XG5cbkBtaXhpbiBzY3JvbGxiYXIoKSB7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMTJweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1ncmV5LWRrMiwgMjUlKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7IC8vIHRoaXMgZ2l2ZXMgdXMgYSB3aWR0aCBvZiA0cHguLi4gNHB4IHBhZGRpbmcgYWxsIHRoZSB3YXkgYXJvdW5kICsgNHB4IHRodW1iXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIHNpbXBsZS1zaXRlaW5mbyB7XG4gIC5mb290ZXItc2l0ZWluZm8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRjb2xvci1ncmV5LWRrMjtcblxuICAgICZfX2l0ZW0uY29weXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICArIC5mb290ZXItc2l0ZWluZm9fX2l0ZW06OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLyBGaWVsZHMgKGlucHV0LCBzZWxlY3QpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gZmllbGQtcmVxdWlyZWRtYXJrZXIge1xuICBjb250ZW50OiBcIipcIjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICBjb2xvcjogJGNvbG9yLWdyZXktZGsyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtbm9ybTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLy8gdXNlIHRoaXMgb24gd3JhcHBlciBhcm91bmQgaW5wdXQgb3Igc2VsZWN0XG5AbWl4aW4gZmllbGQtaGFzLWluc2lkZWxhYmVsKCRoZWlnaHQ6ICRjb250cm9sLWhlaWdodCkge1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udHMtc2FucztcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICBzZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udHMtc2FucztcbiAgICBmb250LXdlaWdodDogJHdlaWdodC1tZWRpdW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29sb3I6ICRjb2xvci1ncmV5LWRrNTtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LW5vcm07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cblxuLy8gQ29sb3IgbWFpbi1uYXYgYXMgaWYgdGhleSdyZSBhbGwgYWN0aXZlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbmF2LXByaW1hcnktYWxsLWFjdGl2ZSB7XG4gIC5uYXYtcHJpbWFyeV9fdGl0bGUge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cbn1cblxuLy8gRGlzcGxheSBcIm5ld1wiIG1hcmtlclxuQG1peGluIG5ldy1tYXJrZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIk5FV1wiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuNmVtIDEuMWVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuNWVtO1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcmVkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXNlbWk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBTaWRlLWJ5LXNpZGUgaW1hZ2UgYW5kIGNhcHRpb24gKGVxdWFsLXNpemVkKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBob3RvY2FyZCAoJG1pbmhlaWdodDogMCwgJGNvdmVyOiB0cnVlKSB7XG4gIEBpbmNsdWRlIGZsZXhyb3coYXV0bywgY2VudGVyLCBzdHJldGNoKTtcblxuICAuY2FyZHBhbmVsIHtcbiAgICBAaW5jbHVkZSBmbGV4Y29sdW1uKDEwMCUsIDApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5waG90byB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgQGlmICgkY292ZXIpIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyAgLy8gZm9yIGllMTEgKG90aGVyd2lzZSBpdCBkb2Vzbid0IHdyYXApXG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgQGluY2x1ZGUgZmxleGNvbHVtbig1MCUsIDApO1xuXG4gICAgICAmLnBob3RvIHtcbiAgICAgICAgQGlmICgkY292ZXIpIHtcbiAgICAgICAgICBAaW5jbHVkZSBjb3ZlcmZpdDtcbiAgICAgICAgfVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgJi5jb250ZW50IHtcbiAgICAgICAgbWluLWhlaWdodDogJG1pbmhlaWdodDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuXG4vLyBSZXNldCBkZWZhdWx0IHN0eWxlc1xuLy8gV0FSTklORzpcbi8vICAgQmUgY2FyZWZ1bCB1c2luZyB0aGlzLCBpbiBjYXNlIGl0XG4vLyAgIHJlc2V0cy9vdmVycmlkZXMgbW9yZSB0aGFuIGV4cGVjdGVkLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHJlc2V0LXN0eWxlcy1saXN0cyB7XG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveCBzaG93L2hpZGUgdG9nZ2xlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVc2VkIGZvciB0aGUgZm9sbG93aW5nIGh0bWwgc3RydWN0dXJlOlxuLy8gICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJzaG93dG9nZ2xlXCIgaWQ9XCJzb21lLXRvZ2dsZS1JRFwiIC8+XG4vLyAgIDwhLS0gc3R1ZmYgdG8gYmUgY29udHJvbGxlZCBieSB0b2dnbGUgLS0+XG4vLyAgIDxsYWJlbCBmb3I9XCJzb21lLXRvZ2dsZS1JRFwiPjxzcGFuIGNsYXNzPVwibW9yZVwiPlNob3cgbW9yZTwvc3Bhbj48c3BhbiBjbGFzcz1cImxlc3NcIj5TaG93IGxlc3M8L3NwYW4+PC9sYWJlbD5cbkBtaXhpbiBzaG93dG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAgLy8gaGlkZSB0aGUgY2hlY2tib3ggZm9yIHRoZSB0b2dnbGVcblxuICB+IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRjb2xvci1yZWQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogJGZvbnRzLXNhbnM7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtc2VtaTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC5sZXNzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgIH1cbiAgfVxuXG4gICY6Y2hlY2tlZCB7XG4gICAgfiBsYWJlbCB7XG4gICAgICAubW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAubGVzcyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc3ltYm9sZ2FsbGVyeXRpbGUge1xuICBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZXktbWlkMjtcblxuICAgIGltZyB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB2aWRlb2ljb24ge1xuICBAaW5jbHVkZSBzaG93Z2x5cGgoJ3BsYXktY2lyY2xlMicpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1yZWQ7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbmVkc3F1YXJlYmxvY2soMnJlbSk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC11cChzbSkge1xuICAgICAgQGluY2x1ZGUgYWxpZ25lZHNxdWFyZWJsb2NrKDMuMzc1cmVtKTtcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdmVydHNwYWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50LXVwKG1kKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG5AbWl4aW4gemVicmEoJGV2ZW46IHRydWUpIHtcbiAgQGlmICgkZXZlbikge1xuICAgID4gZGl2Om50aC1jaGlsZChldmVuKSxcbiAgICA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICA+IHRyOm50aC1jaGlsZChldmVuKSxcbiAgICA+IHRib2R5ID4gdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmV5LWx0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgPiBkaXY6bnRoLWNoaWxkKG9kZCksXG4gICAgPiBsaTpudGgtY2hpbGQob2RkKSxcbiAgICA+IHRyOm50aC1jaGlsZChvZGQpLFxuICAgID4gdGJvZHkgPiB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JleS1sdDtcbiAgICB9XG4gIH1cbn1cblxuLy8gOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XG4vLyA6Ojo6OiBmbGV4IGdyaWQgbWl4aW5zICBhZGFwdGVkIGZyb20genVyYiBmb3VuZGF0aW9uXG4vLyA6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpcblxuQG1peGluIGZsZXhyb3coJGJlaGF2aW9yOiBhdXRvLCAkanVzdGlmeTogc3BhY2UtYmV0d2VlbiwgJGFsaWduOiBzdHJldGNoLCAkZ3V0dGVyd2lkdGg6ICRndXR0ZXIpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiAkanVzdGlmeTtcbiAgYWxpZ24taXRlbXM6ICRhbGlnbjtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBtYXJnaW4tbGVmdDogKC0xICogJGd1dHRlcndpZHRoIC8gNCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAoLTEgKiAkZ3V0dGVyd2lkdGggLyA0KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoLTEgKiAkZ3V0dGVyd2lkdGggLyAyKTtcbiAgICAgIG1hcmdpbi1yaWdodDogKC0xICogJGd1dHRlcndpZHRoIC8gMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBmbGV4Y29sdW1uKCR3aWR0aDogbnVsbCwgJGd1dHRlcndpZHRoOiAkZ3V0dGVyKSB7XG4gIEBpZiAkd2lkdGggIT0gbnVsbCB7XG4gICAgZmxleDogMCAwICR3aWR0aDtcbiAgICBAaWYgJHdpZHRoICE9IGF1dG8ge1xuICAgICAgbWF4LXdpZHRoOiAkd2lkdGg7ICAvLyBuZWVkZWQgZm9yIElFXG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgfVxuXG4gIEBpZiAkZ3V0dGVyd2lkdGggPiAwIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ3V0dGVyd2lkdGggLyA0KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlcndpZHRoIC8gNCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXVwKHhsKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICgkZ3V0dGVyd2lkdGggLyAyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyd2lkdGggLyAyKTtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxBQUFBLFVBQVUsQ0FBQyxFQUNULE9BQU8sRUFBRSxLQUFLLENBQUEsVUFBVSxHQUN6Qjs7QUFFRCxBQUFBLFFBQVEsQ0FBQyxFQUNQLE1BQU0sRUFBRSxJQUFJLEVBQ1osUUFBUSxFQUFFLE9BQU8sR0FJbEI7O0FBTkQsQUFHRSxRQUhNLEFBR04sT0FBUSxDQUFDLEVBQ1AsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFHSCxBQUFBLENBQUMsRUFDRCxBQUFBLENBQUMsQUFBQSxRQUFRLEVBQ1QsQUFBQSxDQUFDLEFBQUEsT0FBTyxDQUFDLEVBRVAsVUFBVSxFQUFFLGVBQWUsRUFDM0IsV0FBVyxFQUFFLGVBQWUsRUFDNUIsVUFBVSxFQUFFLGVBQWUsRUFDM0IsU0FBUyxFQUFFLGVBQWUsR0FHM0I7O0FBRUQsQUFBQSxPQUFPLENBQUMsRUFDTixLQUFLLEVBQUUsTUFBTSxHQUtkOztBQU5ELEFBR0UsT0FISyxBQUdMLFNBQVUsQ0FBQyxFQUNULFFBQVEsRUFBRSxPQUFPLEdBQ2xCOztBQUdILEFBQUEsTUFBTSxDQUFDLEVBQ0wsUUFBUSxFQUFFLGlCQUFpQixHQUM1Qjs7QUFFRCxBQUFPLE1BQUQsQ0FBQyxTQUFTLENBQUMsRUFDZixPQUFPLEVBQUUsSUFBSSxDQUFBLFVBQVUsR0FDeEI7O0FBR0MsQUFBQSxhQUFPLENBQUMsRUFDTixPQUFPLEVBQUUsS0FBSyxDQUFBLFVBQVUsRUFDeEIsT0FBTyxFQUFFLFNBQVMsR0FLbkI7O0FBUEQsQUFJRSxhQUpLLENBSUwsU0FBUyxDQUFDLEVBQ1IsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFSCxBQUFBLFlBQU0sQ0FBQyxFQUNMLE9BQU8sRUFBRSxJQUFJLENBQUEsVUFBVSxHQUN4Qjs7QUFFRCxBQUFBLGdCQUFVLENBQUMsRUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUNULEtBQUssRUU1RFMsSUFBSSxFRjZEbEIsU0FBUyxFQUFFLElBQUksR0FRaEI7O0FBTkMsQUFBQSxzQkFBTyxDQUFDLEVBQ04sT0FBTyxFQUFFLElBQUksR0FJZDs7QUFMRCxBQUVFLHNCQUZLLEFBRUwsVUFBVyxDQUFDLEVBQ1YsT0FBTyxFQUFFLEtBQUssR0FDZjs7QUFPUCxBQUFBLEtBQUssQ0FBQyxFQUNKLE9BQU8sRUFBRSxlQUFlLEdBQ3pCOztBQUdELEFBQUEsWUFBWSxFQUNaLEFBQUEsVUFBVSxFQUNWLEFBQUEsYUFBYSxFQUNiLEFBQUEsaUJBQWlCLENBQUMsRUFDaEIsaUJBQWlCLEVBQUUsS0FBSyxHQUN6Qjs7QUFZRyxLQUFLLEdBRFAsQUFBQSxzQkFBYSxDQUFiLEVBRUksSUFBSSxFQUFFLFNBQVMsR0FrRGxCOztBQXBERCxBQUtFLHNCQUxXLENBS1gsT0FBTyxDQUFDLEVBQ04sT0FBTyxFQUFFLElBQUksR0FDZDs7QUFQSCxBQVNFLHNCQVRXLENBU1gsaUJBQWlCLENBQUMsRUFDaEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsR0FBRyxFQUFFLENBQUMsRUFDTixNQUFNLEVBQUUsSUFBSSxFQUNaLE9BQU8sRUFBRSxNQUFNLEdBc0NoQjs7QUFuREgsQUFTRSxzQkFUVyxDQWVULDBCQUFVLEVBZmQsQUFnQkksc0JBaEJTLENBU1gsaUJBQWlCLENBT2YsU0FBUyxDQUFDLEVBQ1IsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFsQkwsQUFTRSxzQkFUVyxDQW1CVCwwQkFBVSxDQUFDLEVBQ1QsUUFBUSxFQUFFLE1BQU0sR0FDakI7O0FBckJMLEFBU0Usc0JBVFcsQ0FzQlQsdUJBQU8sQ0FBQyxFQUNOLFFBQVEsRUFBRSxrQkFBa0IsR0FDN0I7O0FBeEJMLEFBU0Usc0JBVFcsQ0F5QlQsMEJBQVUsQ0FBQyxFQUNULE9BQU8sRUFBRSxLQUFLLEVBQ2QsT0FBTyxFQUFFLElBQUksRUFDYixVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUE3QkwsQUE4Qkksc0JBOUJTLENBU1gsaUJBQWlCLENBc0JiLGNBQVEsRUEvQmQsQUE4Qkksc0JBOUJTLENBU1gsaUJBQWlCLENBdUJiLGVBQVMsRUFoQ2YsQUE4Qkksc0JBOUJTLENBU1gsaUJBQWlCLENBd0JiLGVBQVMsQ0FBQyxFQUNSLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0FBbkNQLEFBb0NtQixzQkFwQ04sQ0FTWCxpQkFBaUIsQ0EyQmIsZ0JBQVUsR0FBRyxHQUFHLENBQUMsRUFDZixRQUFRLEVBQUUsUUFBUSxFQUNsQixPQUFPLEVBQUUsQ0FBQyxFQUNWLE1BQU0sRUFBRSxJQUFJLEVBQ1osUUFBUSxFQUFFLE9BQU8sRUFDakIsT0FBTyxFQUFFLE1BQU0sR0FLaEI7O0FBOUNQLEFBMkNVLHNCQTNDRyxDQVNYLGlCQUFpQixDQTJCYixnQkFBVSxHQUFHLEdBQUcsR0FPWixHQUFHLENBQUMsRUFDSixpQkFBaUIsRUFBRSxNQUFNLEdBQzFCOztBQTdDVCxBQVNFLHNCQVRXLENBZ0RULHdCQUFRLENBQUMsRUFDUCxVQUFVLEVBQUUsQ0FBQyxHQUNkIn0= */
