.footer__icon-link,.footer__top{position:relative}.footer__icon-link:after,.footer__top-link{position:absolute}.footer{margin-bottom:calc(var(--pwdt--margin)/2)}.footer h2{font-size:1.5rem}.footer .content-area{hyphens:auto;line-height:1.75;overflow-wrap:break-word;padding-left:0;padding-right:0}.footer__top-wrap{background:var(--pwdt--background-footer-top-wrap,var(--pwdt--color-theme-5))}.footer__top .icon-text a{color:inherit}.footer__top .icon-text{color:inherit;color:var(--pwdt--color-footer-top-icon-text,var(--pwdt--color-theme-1));font-size:1.25rem;margin-bottom:1rem;margin-top:1rem}.footer__top .icon-text__icon{color:var(--pwdt--color-footer-top-icon,inherit);flex:0 0 1.2em;height:1.2em;width:1.2em}.footer__top-link{border-radius:50%;height:44px;padding:0;right:0;top:-22px;width:44px}.footer__top-link--border{border:2px solid #fff}.footer__top-link-icon{align-self:center}.footer__icon-link{display:block;line-height:1}.footer__icon-link:after{border-bottom:3px solid;bottom:-1px;content:"";height:0;left:0;opacity:0;transition:opacity .35s;width:100%}.footer__icon-link:hover:after{opacity:1;transition:opacity .15s}.footer__bottom{background:var(--pwdt--background-footer-bottom,var(--pwdt--color-theme-1));color:var(--pwdt--color-footer-bottom,#fff)}.footer__bottom a{color:inherit}.footer__bottom-wrap{min-height:55px}.footer__bottom-wrap>*{min-width:0}@media only print,screen and (min-width:768px){.footer__top .icon-text{margin-bottom:1.4rem;margin-top:1.4rem}}@media(min-width:992px){.offset-lg-1{margin-left:8.3333333333%}}.footer__survey{background-color:var(--pwdt--color-theme-6);bottom:-100%;box-shadow:0 15px 15px -15px rgba(6,36,86,.2);left:2rem;padding:1.5rem;position:fixed;right:2rem;transition:bottom .75s ease-in-out;z-index:2}@media(min-width:768px){.footer__survey{left:auto;max-width:600px;right:3rem}}.footer__survey h2{color:var(--pwdt--color-theme-1);font-size:1.5rem;margin-bottom:.75rem;padding-right:4rem;text-transform:none;text-wrap:balance}.footer__survey p{margin:0 0 1.5rem}.footer__survey--visible{bottom:3rem}.footer__survey--hidden{bottom:0;opacity:0;position:absolute;visibility:hidden}.footer__survey-close{background-color:var(--pwdt--color-theme-1);border:0;height:2rem;margin:0;padding:.5rem;position:absolute;right:1.5rem;top:1.5rem;width:2rem}.footer__survey-close:focus,.footer__survey-close:hover{background-color:var(--pwdt--color-button-bg-focus);cursor:pointer}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2Fzc2V0cy9zdHlsZXMvZm9vdGVyLnNjc3MiLCIuLi9hc3NldHMvc3R5bGVzL2NvbW1vbi9fbWl4aW5zLnNjc3MiLCIuLi9hc3NldHMvc3R5bGVzL3ZlbmRvci9ib290c3RyYXAvbWl4aW5zL19ncmlkLnNjc3MiLCIuLi9hc3NldHMvc3R5bGVzL3ZlbmRvci9ib290c3RyYXAvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLGdDQUVDLGlCQUFBLENBR0QsMkNBRUMsaUJBQUEsQ0FHRCxRQUNDLHlDQUFBLENBRUEsV0NSQSxnQkFBQSxDRFlBLHNCQ2lFQSxZQUFBLENEOURDLGdCQUFBLENDNkRELHdCQUFBLENEL0RDLGNBQUEsQ0FDQSxlQytERCxDRHpERCxrQkFDQyw2RUFBQSxDQUlBLDBCQUNDLGFBQUEsQ0FJRCx3QkFDQyxhQUFBLENBQ0Esd0VBQUEsQ0NoQ0QsaUJBQUEsQ0RrQ0Msa0JBQUEsQ0FEQSxlQ2pDRCxDRHVDQSw4QkFJQyxnREFBQSxDQUhBLGNBQUEsQ0FFQSxZQUFBLENBREEsV0FFQSxDQUlGLGtCQU1DLGlCQUFBLENBRkEsV0FBQSxDQUNBLFNBQUEsQ0FIQSxPQUFBLENBREEsU0FBQSxDQUVBLFVBR0EsQ0FHRCwwQkFDQyxxQkFBQSxDQUdELHVCQUNDLGlCQUFBLENBR0QsbUJBQ0MsYUFBQSxDQUNBLGFBQUEsQ0FFQSx5QkFNQyx1QkFBQSxDQUxBLFdBQUEsQ0FJQSxVQUFBLENBREEsUUFBQSxDQUZBLE1BQUEsQ0FLQSxTQUFBLENBQ0EsdUJBQUEsQ0FMQSxVQUtBLENBR0QsK0JBQ0MsU0FBQSxDQUNBLHVCQUFBLENBSUYsZ0JBRUMsMkVBQUEsQ0FEQSwyQ0FDQSxDQUVBLGtCQUNDLGFBQUEsQ0FJRixxQkFDQyxlQUFBLENBRUEsdUJBQ0MsV0FBQSxDQzJMQSwrQ0R0TEQsd0JBRUMsb0JBQUEsQ0FEQSxpQkFDQSxDQUFBLENDd0xBLHdCRG5MRCxhRW5FQyx5QkFBQSxDQUFBLENGd0VGLGdCQU9DLDJDQUFBLENBRkEsWUFBQSxDQUdBLDZDQUFBLENBTEEsU0FBQSxDQUdBLGNBQUEsQ0FMQSxjQUFBLENBR0EsVUFBQSxDQUtBLGtDQUFBLENBUEEsU0FPQSxDRzlFRyx3QkhxRUosZ0JBWUUsU0FBQSxDQUVBLGVBQUEsQ0FEQSxVQUNBLENBQUEsQ0FHRCxtQkFDQyxnQ0FBQSxDQUdBLGdCQUFBLENBRUEsb0JBQUEsQ0FEQSxrQkFBQSxDQUZBLG1CQUFBLENBREEsaUJBSUEsQ0FHRCxrQkFDQyxpQkFBQSxDQUlGLHlCQUNDLFdBQUEsQ0FHRCx3QkFJQyxRQUFBLENBRkEsU0FBQSxDQUNBLGlCQUFBLENBRkEsaUJBR0EsQ0FHRCxzQkFTQywyQ0FBQSxDQUxBLFFBQUEsQ0FJQSxXQUFBLENBRkEsUUFBQSxDQURBLGFBQUEsQ0FKQSxpQkFBQSxDQUVBLFlBQUEsQ0FEQSxVQUFBLENBS0EsVUFFQSxDQUVBLHdEQUVDLG1EQUFBLENBQ0EsY0FBQSIsImZpbGUiOiJmb290ZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT0gUFdEIFdQIFNhc3MgRnJhbWV3b3JrID09XG4vLyBUaGVtZSBmb290ZXIgc3R5bGVzXG4vLyBUZW1wbGF0ZTogXCJ0ZW1wbGF0ZXMvZm9vdGVyLnBocFwiXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuQGltcG9ydCBcImNvbW1vbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJjb21tb24vbWl4aW5zXCI7XG5cbi5mb290ZXJfX3RvcCxcbi5mb290ZXJfX2ljb24tbGluayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZvb3Rlcl9fdG9wLWxpbmssXG4uZm9vdGVyX19pY29uLWxpbms6OmFmdGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uZm9vdGVyIHtcblx0bWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1wd2R0LS1tYXJnaW4pIC8gMik7XG5cblx0aDIge1xuXHRcdEBpbmNsdWRlIHB3ZC1mb250c2l6ZSgyNCk7XG5cdH1cblxuXHQuY29udGVudC1hcmVhIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRsaW5lLWhlaWdodDogbWF0aC5kaXYoMjgsIDE2KTtcblx0XHRAaW5jbHVkZSBwd2QtaHlwaGVucygpO1xuXHR9XG59XG5cbi5mb290ZXJfX3RvcC13cmFwIHtcblx0YmFja2dyb3VuZDogdmFyKC0tcHdkdC0tYmFja2dyb3VuZC1mb290ZXItdG9wLXdyYXAsIHZhcigtLXB3ZHQtLWNvbG9yLXRoZW1lLTUpKTtcbn1cblxuLmZvb3Rlcl9fdG9wIHtcblx0Lmljb24tdGV4dCBhIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0fVxuXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLWJsb2NrLW5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzICovXG5cdC5pY29uLXRleHQge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGNvbG9yOiB2YXIoLS1wd2R0LS1jb2xvci1mb290ZXItdG9wLWljb24tdGV4dCwgdmFyKC0tcHdkdC0tY29sb3ItdGhlbWUtMSkpO1xuXHRcdG1hcmdpbi10b3A6IDFyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0XHRAaW5jbHVkZSBwd2QtZm9udHNpemUoJGJhc2UtZm9udC1zaXplICsgNCk7XG5cdH1cblx0Lyogc3R5bGVsaW50LWVuYWJsZSBkZWNsYXJhdGlvbi1ibG9jay1uby1kdXBsaWNhdGUtcHJvcGVydGllcyAqL1xuXG5cdC5pY29uLXRleHRfX2ljb24ge1xuXHRcdGZsZXg6IDAgMCAxLjJlbTtcblx0XHR3aWR0aDogMS4yZW07XG5cdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRjb2xvcjogdmFyKC0tcHdkdC0tY29sb3ItZm9vdGVyLXRvcC1pY29uLCBpbmhlcml0KTtcblx0fVxufVxuXG4uZm9vdGVyX190b3AtbGluayB7XG5cdHRvcDogLTIycHg7XG5cdHJpZ2h0OiAwO1xuXHR3aWR0aDogNDRweDtcblx0aGVpZ2h0OiA0NHB4O1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5mb290ZXJfX3RvcC1saW5rLS1ib3JkZXIge1xuXHRib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xufVxuXG4uZm9vdGVyX190b3AtbGluay1pY29uIHtcblx0YWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uZm9vdGVyX19pY29uLWxpbmsge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGJvdHRvbTogLTFweDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMDtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZDtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjM1cztcblx0fVxuXG5cdCY6aG92ZXI6OmFmdGVyIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cztcblx0fVxufVxuXG4uZm9vdGVyX19ib3R0b20ge1xuXHRjb2xvcjogdmFyKC0tcHdkdC0tY29sb3ItZm9vdGVyLWJvdHRvbSwgI2ZmZmZmZik7XG5cdGJhY2tncm91bmQ6IHZhcigtLXB3ZHQtLWJhY2tncm91bmQtZm9vdGVyLWJvdHRvbSwgdmFyKC0tcHdkdC0tY29sb3ItdGhlbWUtMSkpO1xuXG5cdGEge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG59XG5cbi5mb290ZXJfX2JvdHRvbS13cmFwIHtcblx0bWluLWhlaWdodDogNTVweDtcblxuXHQ+ICoge1xuXHRcdG1pbi13aWR0aDogMDtcblx0fVxufVxuXG5AaW5jbHVkZSBwd2QtbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHQuZm9vdGVyX190b3AgLmljb24tdGV4dCB7XG5cdFx0bWFyZ2luLXRvcDogMS40cmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNHJlbTtcblx0fVxufVxuXG5AaW5jbHVkZSBwd2QtbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHQub2Zmc2V0LWxnLTEge1xuXHRcdEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgxKTtcblx0fVxufVxuXG4uZm9vdGVyX19zdXJ2ZXkge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHotaW5kZXg6IDI7XG5cdGxlZnQ6IDJyZW07XG5cdHJpZ2h0OiAycmVtO1xuXHRib3R0b206IC0xMDAlO1xuXHRwYWRkaW5nOiAxLjVyZW07XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXB3ZHQtLWNvbG9yLXRoZW1lLTYpO1xuXHRib3gtc2hhZG93OiAwIDE1cHggMTVweCAtMTVweCByZ2IoNiAzNiA4NiAvIDIwJSk7XG5cdHRyYW5zaXRpb246IGJvdHRvbSAwLjc1cyBlYXNlLWluLW91dDtcblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogM3JlbTtcblx0XHRtYXgtd2lkdGg6IDYwMHB4O1xuXHR9XG5cblx0aDIge1xuXHRcdGNvbG9yOiB2YXIoLS1wd2R0LS1jb2xvci10aGVtZS0xKTtcblx0XHR0ZXh0LXdyYXA6IGJhbGFuY2U7XG5cdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAxLjVyZW07XG5cdFx0cGFkZGluZy1yaWdodDogNHJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuXHR9XG5cblx0cCB7XG5cdFx0bWFyZ2luOiAwIDAgMS41cmVtO1xuXHR9XG59XG5cbi5mb290ZXJfX3N1cnZleS0tdmlzaWJsZSB7XG5cdGJvdHRvbTogM3JlbTtcbn1cblxuLmZvb3Rlcl9fc3VydmV5LS1oaWRkZW4ge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdG9wYWNpdHk6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAwO1xufVxuXG4uZm9vdGVyX19zdXJ2ZXktY2xvc2Uge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMS41cmVtO1xuXHRyaWdodDogMS41cmVtO1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDAuNXJlbTtcblx0bWFyZ2luOiAwO1xuXHR3aWR0aDogMnJlbTtcblx0aGVpZ2h0OiAycmVtO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wd2R0LS1jb2xvci10aGVtZS0xKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wd2R0LS1jb2xvci1idXR0b24tYmctZm9jdXMpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxufVxuIiwiLy8gUFdEIFdQIFNhc3MgRnJhbWV3b3JrIDEuMCAvIE1peGluc1xuXG4vLyBHZXQgcmVsYXRpdmUgZm9udCBzaXplIChyZW0pIGZyb20gcHggdmFsdWVcbi8vIFByb3ZpZGVzIHB4IGZhbGxiYWNrIHRvIG9sZGVyIGJyb3dzZXJzXG4vLyBJZiB5b3Ugd2FudCBqdXN0IHBpeGVsIHNpemUsIHNldCAkZml4ZWQgdG8gdHJ1ZVxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBwd2QtZm9udHNpemUoJHB4OiAkYmFzZS1mb250LXNpemUsICRmaXhlZDogZmFsc2UpIHtcblx0Ly8gRmFsbGJhY2sgdG8gUkVNIHVuaXRzXG5cdEBpZiAkZml4ZWQge1xuXHRcdGZvbnQtc2l6ZTogJHB4ICogMXB4O1xuXHR9XG5cblx0Zm9udC1zaXplOiBweC10by1yZW0oJHB4KTtcbn1cblxuLy8gRmx1aWQgZm9udCBzaXplXG4vLyBTZWU6IGh0dHBzOi8vY2hyaXNraXJrbmllbHNlbi5jb20vYmxvZy9tb2Rlcm4tZmx1aWQtdHlwb2dyYXBoeS13aXRoLWNsYW1wL1xuLy9cbi8vICRtaW4tdmFsdWUgTWluaW11bSBmb250IHNpemUgaW4gcmVtIHVuaXRzXG4vLyAkbWF4LXZhbHVlIE1heGltdW0gZm9udCBzaXplIGluIHJlbSB1bml0c1xuLy8gJG1pbi12dyBNaW5pbXVtIHZpZXdwb3J0IHdpZHRoIGluIHJlbSB1bml0cywgZGVmYXVsdHMgdG8gMzJyZW0gKDMyMHB4KVxuLy8gJG1heC12dyBNYXhpbXVtIHZpZXdwb3J0IHdpZHRoIGluIHJlbSB1bml0cywgZGVmYXVsdHMgdG8gbGFyZ2VzdCBCb290c3RyYXAgZ3JpZCBjb250YWluZXIgd2lkdGhcblxuLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tYmxvY2stbm8tZHVwbGljYXRlLXByb3BlcnRpZXMgKi9cbkBtaXhpbiBwd2QtZmx1aWQtZm9udHNpemUoJG1pbi12YWx1ZSwgJG1heC12YWx1ZSwgJG1pbi12dzogZmFsc2UsICRtYXgtdnc6IGZhbHNlKSB7XG5cdEBpZiAkbWluLXZ3ID09IGZhbHNlIHtcblx0XHQkbWluLXZ3OiBweC10by1yZW0oMzIwKTtcblx0fVxuXG5cdEBpZiAkbWF4LXZ3ID09IGZhbHNlIHtcblx0XHQkbWF4LXZ3OiBweC10by1yZW0obWFwLWdldCgkY29udGFpbmVyLW1heC13aWR0aHMsIHhsKSk7XG5cdH1cblxuXHQkbWluLXZhbHVlOiBweC10by1yZW0oJG1pbi12YWx1ZSk7XG5cdCRtYXgtdmFsdWU6IHB4LXRvLXJlbSgkbWF4LXZhbHVlKTtcblxuXHQkZmFjdG9yOiBtYXRoLmRpdigxLCAkbWF4LXZ3IC0gJG1pbi12dykgKiAoJG1heC12YWx1ZSAtICRtaW4tdmFsdWUpO1xuXHQkY2FsYy12YWx1ZTogdW5xdW90ZShcIiN7ICRtaW4tdmFsdWUgLSAoJG1pbi12dyAqICRmYWN0b3IpIH0gKyAjeyAxMDB2dyAqICRmYWN0b3IgfVwiKTtcblxuXHRmb250LXNpemU6ICRtaW4tdmFsdWU7IC8vIEZhbGxiYWNrIGZvciBvbGRlciBicm93c2Vyc1xuXHRmb250LXNpemU6IGNsYW1wKCN7IGlmKCRtaW4tdmFsdWUgPiAkbWF4LXZhbHVlLCAkbWF4LXZhbHVlLCAkbWluLXZhbHVlKSB9LCAjeyAkY2FsYy12YWx1ZSB9LCAjeyBpZigkbWluLXZhbHVlID4gJG1heC12YWx1ZSwgJG1pbi12YWx1ZSwgJG1heC12YWx1ZSkgfSk7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIGRlY2xhcmF0aW9uLWJsb2NrLW5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzICovXG5cbi8vIFRleHQgaGVhZGluZyBzdHlsZVxuLy8gR2V0cyBpbmRpdmlkdWFsIHRleHQgaGVhZGluZyBzdHlsZVxuLy8gU3VwcG9ydGVkIHByb3BlcnRpZXM6IG1hcmdpbiwgY29sb3IsIGZvbnQtZmFtaWx5LCBmb250LXNpemUsIGZvbnQtd2VpZ2h0LCBmb250LXN0eWxlLCBsaW5lLWhlaWdodFxuXG4vLyAkaGVhZGluZy1sZXZlbFx0XHRIZWFkaW5nIGxldmVsIChpbnQpXG4vLyAkcHJvcGVydHlcdFx0XHRDU1MgcHJvcGVydHkgKHN0cmluZylcblxuQG1peGluIHB3ZC1oZWFkaW5nLXN0eWxlKCRoZWFkaW5nLWxldmVsOiBmYWxzZSwgJHByb3BlcnR5OiBmYWxzZSkge1xuXHRAaWYgJGhlYWRpbmctbGV2ZWwgYW5kICRwcm9wZXJ0eSB7XG5cdFx0QGlmICRwcm9wZXJ0eSA9PSBtYXJnaW4ge1xuXHRcdFx0bWFyZ2luOiBudGgoJGhlYWRpbmctbWFyZ2lucywgJGhlYWRpbmctbGV2ZWwpO1xuXHRcdH1cblxuXHRcdEBpZiAkcHJvcGVydHkgPT0gY29sb3Ige1xuXHRcdFx0Y29sb3I6IG50aCgkaGVhZGluZy1jb2xvcnMsICRoZWFkaW5nLWxldmVsKTtcblx0XHR9XG5cblx0XHRAaWYgJHByb3BlcnR5ID09IGZvbnQtZmFtaWx5IHtcblx0XHRcdGZvbnQtZmFtaWx5OiBudGgoJGhlYWRpbmctZm9udC1mYW1pbGllcywgJGhlYWRpbmctbGV2ZWwpO1xuXHRcdH1cblxuXHRcdEBpZiAkcHJvcGVydHkgPT0gZm9udC1zaXplIHtcblx0XHRcdEBpbmNsdWRlIHB3ZC1mb250c2l6ZShudGgoJGhlYWRpbmctZm9udC1zaXplcywgJGhlYWRpbmctbGV2ZWwpKTtcblx0XHR9XG5cblx0XHRAaWYgJHByb3BlcnR5ID09IGZvbnQtd2VpZ2h0IHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBudGgoJGhlYWRpbmctZm9udC13ZWlnaHRzLCAkaGVhZGluZy1sZXZlbCk7XG5cdFx0fVxuXG5cdFx0QGlmICRwcm9wZXJ0eSA9PSBmb250LXN0eWxlIHtcblx0XHRcdGZvbnQtc3R5bGU6IG50aCgkaGVhZGluZy1mb250LXN0eWxlcywgJGhlYWRpbmctbGV2ZWwpO1xuXHRcdH1cblxuXHRcdEBpZiAkcHJvcGVydHkgPT0gbGluZS1oZWlnaHQge1xuXHRcdFx0bGluZS1oZWlnaHQ6IG50aCgkaGVhZGluZy1saW5lLWhlaWdodHMsICRoZWFkaW5nLWxldmVsKTtcblx0XHR9XG5cdH1cbn1cblxuLy8gQWRkIGh5cGhlbmF0aW9uIHdpdGggZmFsbGJhY2sgZm9yIGxlZ2FjeVxuLy8gYnJvd3NlcnMgYW5kIGJyb3dzZXJzIHdoaWNoIGRvbid0IHN1cHBvcnRcbi8vIGh5cGhlbmF0aW9uIGZvciBjdXJyZW50IGxhbmd1YWdlXG5cbkBtaXhpbiBwd2QtaHlwaGVucygpIHtcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0aHlwaGVuczogYXV0bztcbn1cblxuLy8gQ3VzdG9tIENTUyBncmlkIG1peGluXG4vL1xuLy8gQW4gYXV0by1maWxsaW5nIENTUyBncmlkIHdpdGggbWF4aW11bSBjb2x1bW5zIG9mIGEgbWluaW11bSBzaXplLlxuLy8gRm9ya2VkIHZlcnNpb24gZnJvbSBhcnRpY2U6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYW4tYXV0by1maWxsaW5nLWNzcy1ncmlkLXdpdGgtbWF4LWNvbHVtbnMvXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSBncmlkIHNldHRpbmdzIHBlciBjb250YWluZXIgZWxlbWVudCBiYXNpcyB3aXRoIENTUyB2YXJpYWJsZXM6XG4vLyAtLWdyaWQtLXdpZHRoLS1nYXAgICAgICAgICBSb3cgYW5kIGNvbHVtbiBnYXAuIERlZmF1bHQgJGdhcCBwYXJhbWV0ZXIgdmFsdWUuXG4vLyAtLWdyaWQtLXdpZHRoLS1nYXAtLXJvdyAgICBSb3cgZ2FwLiBEZWZhdWx0IHZhbHVlIGlzICRnYXAgcGFyYW1ldGVyIGNhbGN1bGF0ZWQgdmFsdWUuXG4vLyAtLWdyaWQtLXdpZHRoLS1nYXAtLWNvbHVtbiBDb2x1bW4gZ2FwLiBEZWZhdWx0IHZhbHVlIGlzICRnYXAgcGFyYW1ldGVyIGNhbGN1bGF0ZWQgdmFsdWUuXG4vLyAtLWdyaWQtLWNvbHVtbi0tbWF4LWNvdW50ICBNYXhpbXVtIGNvbHVtbiBjb3VudC4gRGVmYXVsdCAkY29sdW1uLW1heC1jb3VudCBwYXJhbWV0ZXIgdmFsdWUuXG4vLyAtLWdyaWQtLWNvbHVtbi0tbWluLXdpZHRoICBDb2x1bW4gbWluaW11bSB3aWR0aC4gRGVmYXVsdCAkY29sdW1uLW1pbi13aWR0aCBwYXJhbWV0ZXIgdmFsdWUuXG4vL1xuLy8gQHBhcmFtIDxsZW5ndGg+ICRnYXAgICAgICAgICAgICAgIEdyaWQgY29sdW1uIGdhcC4gVmFsaWQgcG9zaXRpdmUgPGxlbmd0aD4gQ1NTIGRhdGEgdHlwZSB2YWx1ZS4gRGVmYXVsdCBlbXB0eSwgYW5kIHNldHMgdmFsdWUgZnJvbSBnbG9iYWwgLS1wd2QtLWdyaWQtLXdpZHRoLS1nYXAgQ1NTIHZhcmlhYmxlIHZhbHVlLlxuLy8gQHBhcmFtIGludCAgICAgICRjb2x1bW4tbWF4LWNvdW50IEdyaWQgbWF4aW11bSBjb2x1bW4gY291bnQuIFBvc2l0aXZlLCBncmVhdGVyIHRoYW4gMCwgaW50ZWdlci4gRGVmYXVsdCAzLlxuLy8gQHBhcmFtIDxsZW5ndGg+ICRjb2x1bW4tbWluLXdpZHRoIEdyaWQgY29sdW1uIG1pbmltdW0gd2lkdGguIFZhbGlkIHBvc2l0aXZlIDxsZW5ndGg+IENTUyBkYXRhIHR5cGUgdmFsdWUuIERlZmF1bHQgMjYwcHggY29udmVydGVkIHRvIHJlbSB1bml0LlxuQG1peGluIHB3ZC1ncmlkKCRnYXA6IFwiXCIsICRjb2x1bW4tbWF4LWNvdW50OiAzLCAkY29sdW1uLW1pbi13aWR0aDogcHgtdG8tcmVtKDI2MCkpIHtcblx0Ly8gVmFyaWFibGVzIHByZWZpeGVkIHdpdGggXCItLV9cIiBhcmUgb25seSBmb3IgaW50ZXJuYWwgdXNlLlxuXHRAaWYgJGdhcCAhPSBcIlwiIHtcblx0XHQtLV9ncmlkLS1nYXA6ICN7JGdhcH07XG5cdH0gQGVsc2Uge1xuXHRcdC0tX2dyaWQtLWdhcDogdmFyKC0tZ3JpZC0td2lkdGgtLWdhcCwgdmFyKC0tcHdkdC0tZ3JpZC1ndXR0ZXItd2lkdGgsIDMwcHgpKTtcblx0fVxuXG5cdC0tX2dyaWQtLWNvbHVtbi0tbWF4LWNvdW50OiB2YXIoLS1ncmlkLS1jb2x1bW4tLW1heC1jb3VudCwgI3skY29sdW1uLW1heC1jb3VudH0pO1xuXHQtLV9ncmlkLS1jb2x1bW4tLW1pbi13aWR0aDogdmFyKC0tZ3JpZC0tY29sdW1uLS1taW4td2lkdGgsICN7JGNvbHVtbi1taW4td2lkdGh9KTtcblx0LS1fZ3JpZC0tZ2FwLS1jb3VudDogY2FsYyh2YXIoLS1fZ3JpZC0tY29sdW1uLS1tYXgtY291bnQpIC0gMSk7XG5cdC0tX2dyaWQtLWdhcC0td2lkdGgtLXRvdGFsOiBjYWxjKHZhcigtLV9ncmlkLS1nYXAtLWNvdW50KSAqIHZhcigtLV9ncmlkLS1nYXApKTtcblx0LS1fZ3JpZC0tY29sdW1uLS13aWR0aC0tbWF4OiBjYWxjKCgxMDAlIC0gdmFyKC0tX2dyaWQtLWdhcC0td2lkdGgtLXRvdGFsKSkgLyB2YXIoLS1fZ3JpZC0tY29sdW1uLS1tYXgtY291bnQpKTtcblxuXHRkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG5cdGdhcDogdmFyKC0tZ3JpZC0td2lkdGgtLWdhcC0tcm93LCB2YXIoLS1fZ3JpZC0tZ2FwKSkgdmFyKC0tZ3JpZC0td2lkdGgtLWdhcC0tY29sdW1uLCB2YXIoLS1fZ3JpZC0tZ2FwKSkgIWltcG9ydGFudDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgobWF4KG1pbigxMDAlLCB2YXIoLS1fZ3JpZC0tY29sdW1uLS1taW4td2lkdGgpKSwgdmFyKC0tX2dyaWQtLWNvbHVtbi0td2lkdGgtLW1heCkpLCAxZnIpKTtcblxuXHQvLyBGYWxsYmFjayBzdHlsZSBmb3IgYnJvd3NlcnMgd2hpY2ggZG9uJ3Qgc3VwcG9ydCBDU1MgZ3JpZFxuXHQ+ICoge1xuXHRcdG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX2dyaWQtLWdhcCk7XG5cdH1cblxuXHRAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcblx0XHQ+ICoge1xuXHRcdFx0bWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4vLyBBZGQgZ3JpZCBtYXJnaW5cblxuQG1peGluIHB3ZC1ncmlkLW1hcmdpbigkaW1wb3J0YW50OiBmYWxzZSkge1xuXHRtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXB3ZHQtLWdyaWQtZ3V0dGVyLXdpZHRoKSAqIC0xKTtcblxuXHQ+ICoge1xuXHRcdEBpZiAkaW1wb3J0YW50ID09IGZhbHNlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXB3ZHQtLWdyaWQtZ3V0dGVyLXdpZHRoKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLXB3ZHQtLWdyaWQtZ3V0dGVyLXdpZHRoKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gcHdkLWdyaWQtbWFyZ2luLXhzbWFsbCgpIHtcblx0bWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1wd2R0LS1ncmlkLWd1dHRlci13aWR0aC14c21hbGwpIC8gMiAqIC0xKTtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcHdkdC0tZ3JpZC1ndXR0ZXItd2lkdGgteHNtYWxsKSAvIDIgKiAtMSk7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1wd2R0LS1ncmlkLWd1dHRlci13aWR0aC14c21hbGwpIC8gMiAqIC0xKTtcblxuXHQ+ICoge1xuXHRcdG1pbi13aWR0aDogMDtcblx0XHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tcHdkdC0tZ3JpZC1ndXR0ZXItd2lkdGgteHNtYWxsKSAvIDIpO1xuXHRcdHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tcHdkdC0tZ3JpZC1ndXR0ZXItd2lkdGgteHNtYWxsKSAvIDIpO1xuXHRcdG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcHdkdC0tZ3JpZC1ndXR0ZXItd2lkdGgteHNtYWxsKSAvIDIpO1xuXHR9XG59XG5cbi8vIEhpZGVzIGxpc3QgbWFya2VyXG5cbkBtaXhpbiBwd2QtdW5zdHlsZWQtbGlzdCgpIHtcblx0Ly8gUmVtb3ZlIGxpc3Qgc3R5bGVzIHdpdGhvdXQgYWZmZWN0aW5nIHNlbWFudGljc1xuXHQvLyBodHRwczovL3d3dy5tYXR1em8uYXQvYmxvZy8yMDIzL3JlbW92aW5nLWxpc3Qtc3R5bGVzLXdpdGhvdXQtYWZmZWN0aW5nLXNlbWFudGljc1xuXHRsaXN0LXN0eWxlLXR5cGU6IFwiXCIgIWltcG9ydGFudDtcbn1cblxuLy8gQ29udGVudCBtYXJnaW5zXG5cbkBtaXhpbiBwd2QtY29udGVudC1tYXJnaW5zKCkge1xuXHQ+ICogKyAqIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1wd2R0LS1tYXJnaW4tY29udGVudCk7XG5cdH1cbn1cblxuLy8gQ29udGVudCBhcmVhXG5cbkBtaXhpbiBwd2QtY29udGVudC1hcmVhKCRtYXgtd2lkdGg6IHZhcigtLXB3ZHQtLXdpZHRoLWNvbnRlbnQpLCAkY2VudGVyZWQ6IHRydWUpIHtcblx0JG1hcmdpbi12YWx1ZTogYXV0bztcblxuXHRAaWYgJGNlbnRlcmVkID09IGZhbHNlIHtcblx0XHQkbWFyZ2luLXZhbHVlOiAwO1xuXHR9XG5cblx0PiAqIHtcblx0XHRtYXJnaW4tbGVmdDogJG1hcmdpbi12YWx1ZTtcblx0XHRtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tdmFsdWU7XG5cdFx0bWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuXHR9XG59XG5cbi8vIERlZmF1bHQgYmxvY2sgY29udGVudCBhbGlnbm1lbnQgc3R5bGVzXG4vL1xuLy8gQHBhcmFtIGJvb2wgJGVkaXRvciBXaGV0ZXIgdG8gbG9hZCBlZGl0b3Igc3BlY2lmaWMgc3R5bGVzXG5AbWl4aW4gcHdkLWFsaWdubWVudC1zdHlsZXMoJGVkaXRvcjogZmFsc2UpIHtcblx0JGJvZHktc2VsZWN0b3I6IFwiYm9keVwiO1xuXHQkcHJlZml4OiBcIlwiO1xuXG5cdEBpZiAoJGVkaXRvcikge1xuXHRcdCRib2R5LXNlbGVjdG9yOiBcIi5lZGl0b3Itc3R5bGVzLXdyYXBwZXJcIjtcblx0XHQkcHJlZml4OiAkYm9keS1zZWxlY3Rvcjtcblx0fVxuXG5cdEBpZiAoJGVkaXRvcikge1xuXHRcdC8vICN7JGJvZHktc2VsZWN0b3J9ID4gLmlzLXJvb3QtY29udGFpbmVyLFxuXHRcdC8vICN7JHByZWZpeH0gLmVkaXQtcG9zdC12aXN1YWwtZWRpdG9yX19wb3N0LXRpdGxlLXdyYXBwZXIsXG5cdFx0I3skcHJlZml4fSAud3AtYmxvY2stZ3JvdXAuYWxpZ25mdWxsLFxuXHRcdCN7JHByZWZpeH0gLndwLWJsb2NrLWdyb3VwLmhhcy1iYWNrZ3JvdW5kLFxuXHRcdCN7JHByZWZpeH0gLndwLWJsb2NrLWNvdmVyLmFsaWduZnVsbCxcblx0XHQjeyRwcmVmaXh9IC5pcy1yb290LWNvbnRhaW5lciAud3AtYmxvY2tbZGF0YS1hbGlnbj1cImZ1bGxcIl0gPiAud3AtYmxvY2stZ3JvdXAsXG5cdFx0I3skcHJlZml4fSAuaXMtcm9vdC1jb250YWluZXIgLndwLWJsb2NrW2RhdGEtYWxpZ249XCJmdWxsXCJdID4gLndwLWJsb2NrLWNvdmVyIHtcblx0XHRcdHBhZGRpbmctaW5saW5lOiB2YXIoLS1wd2QtLXdpZHRoLS1zcGFjaW5nLW91dGVyKTtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdCN7JHByZWZpeH0gLndwLWJsb2NrLWdyb3VwLmFsaWduZnVsbCxcblx0XHQjeyRwcmVmaXh9IC53cC1ibG9jay1ncm91cC5oYXMtYmFja2dyb3VuZCxcblx0XHQjeyRwcmVmaXh9IC53cC1ibG9jay1jb3Zlci5hbGlnbmZ1bGwge1xuXHRcdFx0cGFkZGluZy1pbmxpbmU6IHZhcigtLXB3ZC0td2lkdGgtLXNwYWNpbmctb3V0ZXIpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAoJGVkaXRvcikge1xuXHRcdC8vICN7JGJvZHktc2VsZWN0b3J9ID4gLmlzLXJvb3QtY29udGFpbmVyID4gLndwLWJsb2NrLWNvdmVyLFxuXHRcdCN7JGJvZHktc2VsZWN0b3J9ID4gLmlzLXJvb3QtY29udGFpbmVyID4gLndwLWJsb2NrLXRlbXBsYXRlLXBhcnQgPiAud3AtYmxvY2stZ3JvdXAuaGFzLWJhY2tncm91bmQsXG5cdFx0I3skYm9keS1zZWxlY3Rvcn0gPiAuaXMtcm9vdC1jb250YWluZXIgPiAud3AtYmxvY2stdGVtcGxhdGUtcGFydCA+IC53cC1ibG9jay1jb3Zlcixcblx0XHQjeyRwcmVmaXh9IC5pcy1yb290LWNvbnRhaW5lci5ibG9jay1lZGl0b3ItYmxvY2stbGlzdF9fbGF5b3V0IC5hbGlnbmZ1bGwsXG5cdFx0I3skcHJlZml4fSAuaXMtcm9vdC1jb250YWluZXIgLndwLWJsb2NrW2RhdGEtYWxpZ249XCJmdWxsXCJdIHtcblx0XHRcdHdpZHRoOiB1bnNldDtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHRcdG1hcmdpbi1pbmxpbmU6IGNhbGModmFyKC0tcHdkLS13aWR0aC0tc3BhY2luZy1vdXRlcikgKiAtMSkgIWltcG9ydGFudDtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdCN7JGJvZHktc2VsZWN0b3J9IC5hbGlnbmZ1bGwsXG5cdFx0I3skYm9keS1zZWxlY3Rvcn0gLmFsaWduZnVsbC53cC1ibG9jay1ncm91cCA+IC5hbGlnbmZ1bGwud3AtYmxvY2stY292ZXIge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0bWFyZ2luLWlubGluZTogY2FsYyh2YXIoLS1wd2QtLXdpZHRoLS1zcGFjaW5nLW91dGVyKSAqIC0xKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdEBpZiAoJGVkaXRvcikge1xuXHRcdCN7JHByZWZpeH0gLmlzLXJvb3QtY29udGFpbmVyIC53cC1ibG9ja1tkYXRhLWFsaWduPVwiZnVsbFwiXSA+ICo6bm90KC53cC1ibG9jay1ncm91cCkgLmFsaWduZnVsbCxcblx0XHQjeyRwcmVmaXh9IC5pcy1yb290LWNvbnRhaW5lciAud3AtYmxvY2tbZGF0YS1hbGlnbj1cImZ1bGxcIl0gPiAqOm5vdCgud3AtYmxvY2stZ3JvdXApIC53cC1ibG9ja1tkYXRhLWFsaWduPVwiZnVsbFwiXSxcblx0XHQjeyRwcmVmaXh9IC5pcy1yb290LWNvbnRhaW5lciAud3AtYmxvY2stY29sdW1ucyAud3AtYmxvY2stY29sdW1uIC5hbGlnbmZ1bGwsXG5cdFx0I3skcHJlZml4fSAuaXMtcm9vdC1jb250YWluZXIgLndwLWJsb2NrLWNvbHVtbnMgLndwLWJsb2NrLWNvbHVtbiAud3AtYmxvY2tbZGF0YS1hbGlnbj1cImZ1bGxcIl0ge1xuXHRcdFx0d2lkdGg6IGluaGVyaXQ7XG5cdFx0XHRtYXJnaW4taW5saW5lOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHQvLyBCbG9ja3MgaW5zaWRlIGNvbHVtbnMgZG9uJ3QgaGF2ZSBuZWdhdGl2ZSBtYXJnaW5zXG5cdFx0I3skcHJlZml4fSAud3AtYmxvY2stY29sdW1ucyAud3AtYmxvY2stY29sdW1uIC5hbGlnbmZ1bGwsXG5cdFx0Ly8gV2UgYWxzbyB3YW50IHRvIGF2b2lkIHN0YWNraW5nIG5lZ2F0aXZlIG1hcmdpbnNcblx0XHQjeyRwcmVmaXh9IC5hbGlnbmZ1bGw6bm90KC53cC1ibG9jay1ncm91cCkgLmFsaWduZnVsbCB7XG5cdFx0XHR3aWR0aDogaW5oZXJpdDtcblx0XHRcdG1hcmdpbi1pbmxpbmU6IGF1dG8gIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHRAaWYgKCRlZGl0b3IpIHtcblx0XHQvLyBSZXNldCBBQ0YgYmxvY2sgd2lkdGggYmVjYXVzZSB0aGUgYmxvY2tzIGhhdmUgZGlmZmVyZW50XG5cdFx0Ly8gRE9NIHN0cnVjdHVyZSBpbiBlZGl0b3Jcblx0XHQvLyAjeyRib2R5LXNlbGVjdG9yfSAuYmxvY2stZWRpdG9yLWJsb2NrLWxpc3RfX2xheW91dC5pcy1yb290LWNvbnRhaW5lciBbY2xhc3MqPVwid3AtYmxvY2stYWNmXCJdIHtcblx0XHQvL1x0bWF4LXdpZHRoOiBub25lO1xuXHRcdC8vXHR3aWR0aDogdW5zZXQ7XG5cdFx0Ly8gfVxuXG5cdFx0Ly8gQmxvY2tzIGluc2lkZSBBQ0YgYmxvY2sgcHJldmlldyBlbGVtZW50IGRvbid0IGhhdmUgbmVnYXRpdmUgbWFyZ2luc1xuXHRcdCN7JGJvZHktc2VsZWN0b3J9IC5pcy1yb290LWNvbnRhaW5lciAuYWNmLWJsb2NrLXByZXZpZXcgLmFsaWduZnVsbCB7XG5cdFx0XHRtYXJnaW4taW5saW5lOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8vID09IEJvb3RzdHJhcCA9PVxuLy8gaHR0cDovL2dldGJvb3RzdHJhcC5jb21cblxuLy8gR3JpZFxuXG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC9taXhpbnMvYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwL21peGlucy9ncmlkXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC9taXhpbnMvY2xlYXJmaXhcIjtcblxuLy8gUFdEIGN1c3RvbSBicmVha3BvaW50IG1peGluXG4vLyBBbGxvd3MgdG8gZGVmaW5lIHdoaWNoIGdyaWQgYnJlYWtwb2ludCBpcyB1c2VkIGZvciBwcmludCBtZWRpYS5cbi8vXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuXG5AbWl4aW4gcHdkLW1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRwcmludC1icmVha3BvaW50LW5hbWU6ICRncmlkLXByaW50LWJyZWFrcG9pbnQpIHtcblx0JG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG5cblx0QGlmICRtaW4gYW5kICRuYW1lID09ICRwcmludC1icmVha3BvaW50LW5hbWUge1xuXHRcdEBtZWRpYSBvbmx5IHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4pIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fSBAZWxzZSBpZiAkbWluIHtcblx0XHRAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuIiwiLy8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lcigkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgKiAwLjU7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAqIDAuNTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgKiAwLjU7XG4gIG1hcmdpbi1sZWZ0OiAtJGd1dHRlciAqIDAuNTtcbn1cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzYCBtaXhpblwiLCBcInY0LjUuMlwiLCBcInY1XCIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgKiAwLjU7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAqIDAuNTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBmbGV4OiAwIDAgcGVyY2VudGFnZShtYXRoLmRpdigkc2l6ZSwgJGNvbHVtbnMpKTtcbiAgLy8gQWRkIGEgYG1heC13aWR0aGAgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4gIC8vIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLiBBcHBsaWVzIHRvIElFMTArIGFuZCBGaXJlZm94LiBDaHJvbWUgYW5kIFNhZmFyaVxuICAvLyBkbyBub3QgYXBwZWFyIHRvIHJlcXVpcmUgdGhpcy5cbiAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKG1hdGguZGl2KCRzaXplLCAkY29sdW1ucykpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtYXV0bygpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFJlc2V0IGVhcmxpZXIgZ3JpZCB0aWVyc1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAkbnVtOiBtYXRoLmRpdigkc2l6ZSwgJGNvbHVtbnMpO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cblxuLy8gUm93IGNvbHVtbnNcbi8vXG4vLyBTcGVjaWZ5IG9uIGEgcGFyZW50IGVsZW1lbnQoZS5nLiwgLnJvdykgdG8gZm9yY2UgaW1tZWRpYXRlIGNoaWxkcmVuIGludG8gTk5cbi8vIG51bWJlcm9mIGNvbHVtbnMuIFN1cHBvcnRzIHdyYXBwaW5nIHRvIG5ldyBsaW5lcywgYnV0IGRvZXMgbm90IGRvIGEgTWFzb25yeVxuLy8gc3R5bGUgZ3JpZC5cbkBtaXhpbiByb3ctY29scygkY291bnQpIHtcbiAgPiAqIHtcbiAgICBmbGV4OiAwIDAgbWF0aC5kaXYoMTAwJSwgJGNvdW50KTtcbiAgICBtYXgtd2lkdGg6IG1hdGguZGl2KDEwMCUsICRjb3VudCk7XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19 */
