{"id":92,"date":"2023-12-07T11:04:54","date_gmt":"2023-12-07T11:04:54","guid":{"rendered":"https:\/\/kbro.wpenginepowered.com\/\/?page_id=92"},"modified":"2026-05-20T19:48:00","modified_gmt":"2026-05-21T01:48:00","slug":"company","status":"publish","type":"page","link":"https:\/\/www.k-brolinen.com\/fr\/company\/","title":{"rendered":"Entreprise"},"content":{"rendered":"<section class=\"hero-simple has-text-align-left\" data-extended=\"no\" data-gradient=\"no\">\r\n\t<style>.hero-simple {\n  position: relative;\n  color: var(--wp--preset--color--light);\n}\n.hero-simple[data-extended=yes] .hero-simple__inner::after {\n  padding-bottom: 80%;\n}\n@media (min-width: 576px) {\n  .hero-simple[data-extended=yes] .hero-simple__inner::after {\n    padding-bottom: 50%;\n  }\n}\n@media (min-width: 768px) {\n  .hero-simple[data-extended=yes] .hero-simple__inner::after {\n    padding-bottom: 50%;\n  }\n}\n@media (min-width: 992px) {\n  .hero-simple[data-extended=yes] .hero-simple__inner::after {\n    padding-bottom: 35.3472222222%;\n  }\n}\n.hero-simple .hero-simple__gradient {\n  display: none;\n  position: absolute;\n}\n@media (min-width: 992px) {\n  .hero-simple .hero-simple__gradient {\n    display: block;\n    right: -29.3125rem;\n    bottom: -28.875rem;\n  }\n}\n.hero-simple .hero-simple__gradient__wrapper {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n  max-width: 90rem;\n  width: 100%;\n  margin: 0 auto;\n  pointer-events: none;\n}\n.hero-simple .hero-simple__inner {\n  position: relative;\n  width: 100%;\n}\n.hero-simple .hero-simple__inner::after {\n  content: \"\";\n  display: block;\n  padding-bottom: 55%;\n}\n@media (min-width: 576px) {\n  .hero-simple .hero-simple__inner::after {\n    padding-bottom: 45%;\n  }\n}\n@media (min-width: 768px) {\n  .hero-simple .hero-simple__inner::after {\n    padding-bottom: 35%;\n  }\n}\n@media (min-width: 992px) {\n  .hero-simple .hero-simple__inner::after {\n    padding-bottom: 20.8333333333%;\n  }\n}\n.hero-simple .hero-simple__image {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  pointer-events: none;\n  user-select: none;\n  overflow: hidden;\n}\n.hero-simple .hero-simple__image img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.hero-simple .hero-simple__content {\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  z-index: 1;\n  width: 100%;\n  transform: translate(-50%, -50%);\n}\n.hero-simple .hero-simple__content .wp-block-heading {\n  font-size: 2.125rem;\n  line-height: 1;\n  letter-spacing: 0.375rem;\n  font-family: \"din-2014-narrow\", sans-serif;\n  font-weight: 600;\n  text-transform: uppercase;\n  text-align: center;\n  margin-right: -0.375rem;\n  margin-bottom: 0.3125rem;\n  padding: 0 1.625rem;\n}\n@media (min-width: 768px) {\n  .hero-simple .hero-simple__content .wp-block-heading {\n    font-size: 3.75rem;\n    line-height: 0.8666666667;\n    letter-spacing: 0.825rem;\n    margin-right: -0.825rem;\n    margin-bottom: 0.6875rem;\n  }\n}\n.hero-simple .hero-simple__pretitle {\n  font-size: 1.5rem;\n  line-height: 1.1666666667;\n  font-weight: 700;\n  font-family: \"minerva-modern\", sans-serif;\n  text-align: center;\n  margin-bottom: 0.625rem;\n}\n@media (min-width: 768px) {\n  .hero-simple .hero-simple__pretitle {\n    font-size: 1.75rem;\n    line-height: 1.0714285714;\n    margin-bottom: 1.75rem;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1oZXJvLXNpbXBsZS9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUdJO0VBRUEsT0M2Qlc7O0FEeEJDO0VBQ0k7O0FFa2lCbEI7RUZuaUJjO0lBSVE7OztBRStoQnRCO0VGbmlCYztJQVFROzs7QUUyaEJ0QjtFRm5pQmM7SUFZUTs7O0FBUWhCO0VBQ0k7RUFFQTs7QUU0Z0JWO0VGL2dCTTtJQU1RO0lBRUE7SUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7O0FBSVI7RUFDSTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUVBOztBRTJlZDtFRi9lVTtJQU9ROzs7QUV3ZWxCO0VGL2VVO0lBV1E7OztBRW9lbEI7RUYvZVU7SUFlUTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUVBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUVBOztBQUVBO0VHakNWO0VBakNDO0VIb0VhO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FFa2JkO0VGNWJVO0lHakNWO0lBakNDO0lIZ0ZpQjtJQUVBO0lBQ0E7OztBQUtaO0VHdkROO0VBakNDO0VIMEZTO0VBQ0E7RUFDQTtFQUVBOztBRWdhVjtFRnRhTTtJR3ZETjtJQWpDQztJSG1HYSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9rYnJvL3BhcnRzL2d1dGVuYmVyZy9hY2YtaGVyby1zaW1wbGUvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnX19zZXR0aW5ncy9pbml0JztcclxuXHJcbi5oZXJvLXNpbXBsZSB7XHJcbiAgICAkYmxvY2s6ICY7XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGNvbG9yOiAkY29sb3ItLWxpZ2h0O1xyXG5cclxuICAgICZbZGF0YS1leHRlbmRlZD1cInllc1wiXSB7XHJcbiAgICAgICAgLmhlcm8tc2ltcGxlIHtcclxuICAgICAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4MCU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDM1LjM0NzIyMjIyMjIyMjIyJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3skYmxvY2t9IHtcclxuICAgICAgICAmX19ncmFkaWVudCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0oLTQ2OSk7XHJcbiAgICAgICAgICAgICAgICBib3R0b206IHJlbSgtNDYyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9fd3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDE0NDApO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDU1JTtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDUlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzNSU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwLjgzMzMzMzMzMzMzMzMzMiU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2ltYWdlIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcblxyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcblxyXG4gICAgICAgICAgICAud3AtYmxvY2staGVhZGluZyB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDM0LCAzNCk7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDYpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93LCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oLTYpO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDUpO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMjYpO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoNjAsIDUyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDEzLjIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtMTMuMik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDExKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fcHJldGl0bGUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KDI0LCAyOCk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC10aXRsZSwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgyOCwgMzApO1xyXG5cclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyOCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLy8qIEJSRUFLUE9JTlRTICovL1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzc1cHgsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCBtYXg6IDE5MjBweCk7XHJcblxyXG4vLyogQ09OVEFJTkVSIHdpZHRoIHZhcmlhYmxlcyAqLy9cclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTA4MHB4O1xyXG4kY29udGFpbmVyLXh4bDogdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLXdpZGUtc2l6ZSk7IC8vIHRoZW1lLmpzb24gc2V0dGluZ3MubGF5b3V0XHJcbiRjb250YWluZXItcGFkZGluZzogNzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuJGZvbnQtYmFzZS1uYXJyb3c6ICdkaW4tMjAxNC1uYXJyb3cnO1xyXG4kZm9udC10aXRsZTogJ21pbmVydmEtbW9kZXJuJztcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOy8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udFNpemVzXHJcbiRsaW5lLWhlaWdodC1kZXNrdG9wOiAxLjU7XHJcblxyXG4vLyBTZXQgTW9iaWxlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IHN0eWxlcyBpbiB0aGVtZS5qc29uIHN0eWxlcy50eXBvZ3JhcGh5XHJcblxyXG4vLyogU1BBQ0lOR1MgKi8vXHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDI2OyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kc3BhY2luZzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbiRtYXJnaW4tbW9iaWxlOiAzMDsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJG1hcmdpbjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogdmFyKC0td3AtLWN1c3RvbS0tbWVkaWEtc3BhY2luZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5tZWRpYVNwYWNpbmc7IC8vcHhcclxuXHJcbi8vKiBDT0xPUlMgKi8vXHJcblxyXG4vLyBCYXNlIENvbG9yc1xyXG4kY29sb3ItLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1kYXJrKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpZ2h0KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE1haW4gQ29sb3JzXHJcbiRjb2xvci0tcHJpbWFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXByaW1hcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE90aGVyIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS01OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBFbGVtZW50cyBDb2xvcnNcclxuJGNvbG9yLS1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJnKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ib2R5OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWJvcmRlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8gVGhlbWUgVGV4dCBDb2xvcnNcclxuJGNvbG9yLS10ZXh0OiAkY29sb3ItLWRhcms7XHJcbiRjb2xvci0tdGV4dC1saWdodDogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1saW5rOiAkY29sb3ItLXByaW1hcnk7XHJcbiRjb2xvci0tbGluay1ob3ZlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8qIE9USEVSICovL1xyXG5cclxuLy8gVHJhbnNpdGlvbnNcclxuJHRyYW5zLXNwZWVkOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkKTtcclxuJHRyYW5zLXNwZWVkLWxvbmdlcjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1sb25nZXIpO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb24tcGF0dGVybjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24tcGF0dGVybik7XHJcbiR0cmFucy1mdW5jOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XHJcblxyXG4vLyBPdXRsaW5lXHJcbiRvdXRsaW5lOiAycHggc29saWQgYmx1ZTsiLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG5cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcclxuLy8vICApO1xyXG4vLy9cclxuJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcblx0J3NjcmVlbic6ICdzY3JlZW4nLFxyXG5cdCdwcmludCc6ICdwcmludCcsXHJcblx0J2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcclxuXHQnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuXHQncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG5cdCdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XHJcbi8vL1xyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuXHQncHgnOiAxLFxyXG5cdCdlbSc6IDAuMDEsXHJcblx0J3JlbSc6IDAuMSxcclxuXHQnJzogMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcclxuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXHJcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xyXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAgLmZvbyB7XHJcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xyXG5cclxuLy8vL1xyXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcclxuXHRcdEBlcnJvciAkbWVzc2FnZTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEB3YXJuICRtZXNzYWdlO1xyXG5cdFx0JF86IG5vb3AoKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJG1lc3NhZ2U7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5AZnVuY3Rpb24gbm9vcCgpIHt9XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG5cdEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0XHRcdEByZXR1cm4gJG9wZXJhdG9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0JF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuXHQkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuXHRcdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuXHRAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG5cdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuXHRAaWYgbm90ICRpbnRlcnZhbCB7XHJcblx0XHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdFx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0XHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdFx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG5cdH1cclxuXHJcblx0QGlmICRvcGVyYXRvciA9PSAnPicge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcblx0Ly8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG5cdC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuXHRAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuXHRcdEByZXR1cm4gJHZhbHVlO1xyXG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuXHRcdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcblx0fVxyXG5cclxuXHQkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuXHQkcmVzdWx0OiAwO1xyXG5cdCRkaWdpdHM6IDA7XHJcblx0JG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG5cdCRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcblx0Ly8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcblx0QGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuXHR9XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xyXG5cdFx0XHRAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xyXG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XHJcblxyXG5cdEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcclxuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxyXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxyXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXHJcbi8vLyBmb3IgaW5zdGFuY2UuXHJcbi8vL1xyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHRAY29udGVudDtcclxuXHJcblx0Ly8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8vXHJcbi8vIE1JWElOU1xyXG4vL1xyXG5AbWl4aW4gY2Yge1xyXG5cdCY6YmVmb3JlLFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblxyXG5cdFx0ZGlzcGxheTogdGFibGU7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHZ3LXNpemUoJHMsICR3OiAxNDQwKSB7XHJcblx0QHJldHVybiAoJHMgLyAkdykgKiAxMDAgKyB2dztcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbSgkc2l6ZVZhbHVlOiAxNikge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZVZhbHVlIC8gMTYpICsgcmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVsKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplIC8gJHJlbCk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBlbSgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gcmVsKCRzaXplLCAkcmVsKSAqIDFlbTtcclxufVxyXG5cclxuQG1peGluIG9iamVjdC1maXQtY292ZXIoKSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblxyXG5cdG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG5AbWl4aW4gbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OiAwKSB7XHJcblx0QGlmICRsaW5lLWhlaWdodCAhPSAwIHtcclxuXHRcdEBpZiAkbGluZS1oZWlnaHQgPCAxMCB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XHJcblx0XHR9XHJcblx0XHRAZWxzZSB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiAkbGV0dGVyLXNwYWNpbmcgIT0gMCB7XHJcblx0XHRAaWYgJGxldHRlci1zcGFjaW5nIDwgMTAge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHR9XHJcblx0XHRAZWxzZSB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oKCRmb250LXNpemUgKiAkbGV0dGVyLXNwYWNpbmcpIC8gMTAwMCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZm9udCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0OiAwLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgdHlwZS1vZigkZm9udC1zaXplLW1hcCkgPT0gJ21hcCcge1xyXG5cdFx0QGVhY2ggJGJyZWFrcG9pbnQsICRmb250LXNpemUgaW4gJGZvbnQtc2l6ZS1tYXAge1xyXG5cdFx0XHRAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZSk7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsaW5lLWhlaWdodCk7XHJcblx0XHRcdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAZWxzZSB7XHJcblx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBlbHNlIHtcclxuXHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUtbWFwKTtcclxuXHJcblx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUtbWFwLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdH1cclxufVxyXG4iXX0= *\/\n<\/style>\t\t<div class=\"hero-simple__inner\">\r\n\t\t<div class=\"hero-simple__content\">\r\n\t\t\t<div class=\"hero-simple__content__inner bounce bounce-up\">\r\n\t\t\t\t\t\t<div class=\"acf-innerblocks-container\">\n<style>.is-style-base-narrow-font {\n  letter-spacing: 0.35rem;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-transform: uppercase;\n}\n\n.is-style-base-font {\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  text-transform: uppercase;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2NvcmUtaGVhZGluZy9zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0EiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMva2Jyby9wYXJ0cy9ndXRlbmJlcmcvY29yZS1oZWFkaW5nL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG4uaXMtc3R5bGUtYmFzZS1uYXJyb3ctZm9udCB7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKDUuNik7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtYmFzZS1uYXJyb3csIHNhbnMtc2VyaWY7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uaXMtc3R5bGUtYmFzZS1mb250IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLCBzYW5zLXNlcmlmO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufSJdfQ== *\/\n<\/style>\n<h2 class=\"wp-block-heading\">Company<\/h2>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t<div class=\"hero-simple__image\">\r\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"300\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-1440x300.jpg\" class=\"attachment-hero-img size-hero-img\" alt=\"K-Bro staff members in uniform\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-1440x300.jpg 1440w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-300x63.jpg 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-768x160.jpg 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-1024x213.jpg 1024w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-1536x320.jpg 1536w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-2048x427.jpg 2048w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-380x79.jpg 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-151x31.jpg 151w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-720x150.jpg 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-420x88.jpg 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-1617x337.jpg 1617w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-315x66.jpg 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-858x179.jpg 858w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-721x150.jpg 721w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-256x53.jpg 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-hero-265x55.jpg 265w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/>\t\t<\/div>\r\n\t\t\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"info has-text-align-left\" data-gradient=\"yes\" data-gradient-location=\"top\">\r\n\t<style>@charset \"UTF-8\";\n.info {\n  margin: 5rem 0rem;\n}\n@media (min-width: 768px) {\n  .info {\n    margin: 7rem 0rem;\n  }\n}\n@media (min-width: 992px) {\n  .info {\n    margin: 5.375rem 0rem;\n  }\n}\n.info[data-gradient=yes] {\n  position: relative;\n  z-index: 1;\n}\n.info[data-gradient-location=top] .info__inner--image-side-left .info__image__gradient--top {\n  right: -13.875rem;\n}\n@media (max-width: 767px) {\n  .info[data-gradient-location=top] .info__inner--image-side-left .info__image__gradient--top {\n    top: -19.5rem;\n  }\n}\n.info[data-gradient-location=top] .info__content {\n  margin-top: 0rem;\n}\n@media (min-width: 992px) {\n  .info[data-gradient-location=top] .info__content {\n    margin-top: 4.5625rem;\n  }\n}\n.info[data-gradient-location=top] .info__content > .acf-innerblocks-container h2.wp-block-heading:first-of-type {\n  margin-bottom: 3.3125rem;\n}\n.info[data-gradient-location=top] .info__content > .acf-innerblocks-container h2.wp-block-heading:first-of-type + p {\n  margin-bottom: 1.6875rem;\n}\n@media (min-width: 768px) {\n  .info[data-gradient-location=top] .info__content > .acf-innerblocks-container .wp-block-button.is-style-arrow-right, .info[data-gradient-location=top] .info__content > .acf-innerblocks-container .wp-block-button.is-style-arrow-right-wider {\n    left: 0;\n    transform: none;\n    margin-left: 1.8125rem;\n  }\n}\n.info[data-gradient-location=top] .info__image__wrapper {\n  margin-top: 0;\n}\n@media (min-width: 768px) {\n  .info[data-gradient-location=top] .info__image__wrapper {\n    margin-top: 7.3125rem;\n  }\n}\n@media (min-width: 992px) {\n  .info[data-gradient-location=top] .info__image__wrapper {\n    margin-top: 0;\n  }\n}\n@media (min-width: 1200px) {\n  .info:not(.info--chart) .info__inner--image-side-left.info__inner--content-alignment-center {\n    margin-right: 6.875rem;\n  }\n}\n.info .info__inner {\n  display: flex;\n  flex-direction: column;\n  gap: 3.3125rem;\n}\n@media (min-width: 768px) {\n  .info .info__inner {\n    flex-direction: row;\n    gap: 2.125rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__inner {\n    gap: 3.4375rem;\n  }\n}\n@media (min-width: 1440px) {\n  .info .info__inner--content-alignment-right {\n    margin-left: 6.875rem;\n  }\n}\n@media (min-width: 1440px) {\n  .info .info__inner--content-alignment-left {\n    margin-right: 6.875rem;\n  }\n}\n@media (min-width: 768px) and (max-width: 1199px) {\n  .info .info__inner--content-alignment-center.info__inner--image-side-default {\n    margin-left: -4.375rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__inner--content-alignment-center.info__inner--image-side-right {\n    margin-left: 6.875rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__inner--gap-55 {\n    gap: 3.4375rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__inner--gap-72 {\n    gap: 4.5rem;\n  }\n}\n.info .info__inner--gap-110 {\n  gap: 2.125rem;\n}\n@media (min-width: 1200px) {\n  .info .info__inner--gap-110 {\n    gap: 6.875rem;\n  }\n}\n.info .info__inner--gap-116 {\n  gap: 5.625rem;\n}\n@media (min-width: 1200px) {\n  .info .info__inner--gap-116 {\n    gap: 7.25rem;\n  }\n}\n@media (min-width: 768px) {\n  .info .info__inner--image-side-left {\n    flex-direction: row-reverse;\n    justify-content: flex-end;\n  }\n}\n@media (min-width: 768px) {\n  .info .info__inner--image-side-left .info__image__wrapper {\n    margin-left: -8.25rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__inner--image-side-left .info__image__wrapper {\n    margin-left: 0rem;\n  }\n}\n@media (min-width: 768px) {\n  .info .info__inner--image-side-right .info__image__wrapper {\n    margin-right: -8.25rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__inner--image-side-right .info__image__wrapper {\n    margin-right: 0rem;\n  }\n}\n.info .info__image {\n  width: 100%;\n  height: 32.6875rem;\n  overflow: hidden;\n  border-radius: 17.75rem;\n}\n@media (min-width: 768px) {\n  .info .info__image {\n    width: 25rem;\n    min-width: 25rem;\n    height: 38.75rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image {\n    width: 33.125rem;\n    min-width: 33.125rem;\n    height: 51.25rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image--width-530 {\n    width: 33.125rem;\n    min-width: 33.125rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image--width-568 {\n    width: 35.5rem;\n    min-width: 35.5rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image--height-820 {\n    height: 51.25rem;\n  }\n}\n@media (min-width: 768px) {\n  .info .info__image--height-952 {\n    height: 41.9375rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image--height-952 {\n    height: 59.5rem;\n  }\n}\n.info .info__image img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: top;\n}\n.info .info__image__wrapper {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  position: relative;\n}\n.info .info__image__wrapper--hide-yes {\n  display: none;\n}\n@media (min-width: 768px) {\n  .info .info__image__wrapper--hide-yes {\n    display: block;\n  }\n}\n.info .info__image + .info__images {\n  margin-top: -3.625rem;\n}\n@media (min-width: 992px) {\n  .info .info__image + .info__images {\n    margin-top: -4.75rem;\n  }\n}\n.info .info__image__gradient {\n  pointer-events: none;\n  z-index: 1;\n}\n.info .info__image__gradient--bottom {\n  position: absolute;\n  left: -24.875rem;\n  bottom: -39.5rem;\n  width: 52.0625rem !important;\n  height: 91.0625rem !important;\n  max-width: unset !important;\n  object-fit: contain !important;\n}\n@media (min-width: 992px) {\n  .info .info__image__gradient--bottom {\n    left: -26.875rem;\n    bottom: -42.5rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image__gradient--bottom {\n    left: -36.875rem;\n    bottom: -45.5rem;\n    width: 84.8125rem !important;\n    height: 91.0625rem !important;\n  }\n}\n.info .info__image__gradient--bottom-line {\n  border-radius: 0 !important;\n  left: -43.875rem;\n  bottom: -37.5rem;\n}\n@media (min-width: 768px) {\n  .info .info__image__gradient--bottom-line {\n    left: -37.875rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__image__gradient--bottom-line {\n    left: -23.375rem;\n    bottom: -4.5rem;\n    width: 63.1875rem !important;\n    height: 35.5rem !important;\n  }\n}\n.info .info__image__gradient--top {\n  position: absolute;\n  right: -25.875rem;\n  top: -35.5rem;\n  z-index: -1;\n  width: 75.9375rem !important;\n  height: 82.625rem !important;\n  max-width: unset !important;\n  object-fit: contain !important;\n}\n@media (min-width: 1200px) {\n  .info .info__image__gradient--top {\n    right: -28.875rem;\n    top: -41.5rem;\n    width: 88.4375rem !important;\n    height: 95.125rem !important;\n  }\n}\n.info .info__images {\n  display: none;\n  flex-direction: column;\n  gap: 1.75rem;\n  position: relative;\n}\n@media (min-width: 768px) {\n  .info .info__images {\n    display: flex;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__images {\n    gap: 2.3125rem;\n  }\n}\n.info .info__images__inner {\n  overflow: hidden;\n  border-radius: 50%;\n}\n.info .info__images img {\n  width: 14.875rem;\n  height: 14.875rem;\n  border-radius: 50%;\n}\n@media (min-width: 1200px) {\n  .info .info__images img {\n    width: 19.6875rem;\n    height: 19.6875rem;\n  }\n}\n@media (min-width: 768px) {\n  .info .info__content {\n    margin-top: 3.625rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__content {\n    margin-top: 9.875rem;\n  }\n}\n@media (max-width: 1199px) {\n  .info .info__content > .acf-innerblocks-container .wp-block-spacer {\n    display: none;\n  }\n}\n.info .info__content > .acf-innerblocks-container > h2.wp-block-heading:first-of-type {\n  font-size: 2rem;\n  line-height: 1;\n}\n@media (min-width: 768px) {\n  .info .info__content > .acf-innerblocks-container > h2.wp-block-heading:first-of-type {\n    font-size: 3.25rem;\n    line-height: 1;\n  }\n}\n.info .info__content > .acf-innerblocks-container > h2.wp-block-heading.is-style-base-narrow-font {\n  font-size: 2.25rem;\n  line-height: 1;\n  letter-spacing: 0.45rem;\n  font-family: \"din-2014-narrow\";\n  text-transform: uppercase;\n  text-align: center;\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container > h2.wp-block-heading.is-style-base-narrow-font {\n    font-size: 2.625rem;\n    line-height: 1;\n    letter-spacing: 0.525rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info .info__content > .acf-innerblocks-container > h2.wp-block-heading.is-style-base-narrow-font {\n    text-align: left;\n  }\n}\n.info .info__content > .acf-innerblocks-container > h2.wp-block-heading.is-style-base-narrow-font.has-text-align-center {\n  text-align: center;\n}\n.info .info__content > .acf-innerblocks-container .h2.is-style-base-narrow-font {\n  font-size: 2.25rem;\n  line-height: 1;\n  letter-spacing: 0.45rem;\n  font-weight: 700;\n  font-family: \"din-2014-narrow\";\n  text-transform: uppercase;\n}\n.info .info__content > .acf-innerblocks-container .h3.is-style-base-narrow-font {\n  font-size: 1.625rem;\n  line-height: 1.0769230769;\n  letter-spacing: 0.1625rem;\n  font-weight: 700;\n  font-family: \"din-2014-narrow\";\n  text-transform: uppercase;\n}\n.info .info__content > .acf-innerblocks-container .inline + .wp-block-heading {\n  margin-top: 3.5rem;\n  margin-bottom: 1.5rem;\n}\n.info .info__content > .acf-innerblocks-container .is-style-leadparagraph {\n  margin-bottom: 1.5625rem;\n}\n.info .info__content > .acf-innerblocks-container ul:not([class], :last-child) {\n  margin-bottom: 3.125rem;\n  padding-left: 0.6875rem;\n  list-style: none;\n}\n@media (min-width: 768px) {\n  .info .info__content > .acf-innerblocks-container ul:not([class], :last-child) {\n    margin-bottom: 4.625rem;\n  }\n}\n.info .info__content > .acf-innerblocks-container ul:not([class], :last-child) li {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.625rem;\n}\n.info .info__content > .acf-innerblocks-container ul:not([class], :last-child) li::before {\n  content: \"\u2022\";\n  display: block;\n}\n.info .info__content > .acf-innerblocks-container ul:last-child {\n  margin-bottom: 0;\n}\n.info .info__content > .acf-innerblocks-container .list {\n  margin: 4.875rem 0 0 0;\n}\n@media (min-width: 768px) {\n  .info .info__content > .acf-innerblocks-container .list {\n    margin: 5.6875rem 0 0 0;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container .list {\n    margin: 5.4375rem 0 0 0;\n  }\n}\n.info .info__content > .acf-innerblocks-container .list .container {\n  padding: 0;\n}\n.info .info__content > .acf-innerblocks-container .list__list {\n  margin-bottom: 3.1875rem;\n  margin-left: 0;\n  gap: 3.25rem;\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container .list__list {\n    gap: 3.375rem 3.625rem;\n  }\n}\n.info .info__content > .acf-innerblocks-container .list__item {\n  width: 100%;\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container .list__item {\n    width: calc(50% - 29px);\n  }\n}\n@media (max-width: 991px) {\n  .info .info__content > .acf-innerblocks-container .list__content {\n    margin-right: -19.3125rem;\n    margin-left: 0;\n    max-width: unset;\n  }\n}\n@media (max-width: 767px) {\n  .info .info__content > .acf-innerblocks-container .list__content {\n    margin-right: 0rem;\n  }\n}\n.info .info__content > .acf-innerblocks-container p:not(.is-style-subheading) {\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n}\n.info .info__content > .acf-innerblocks-container p + p:not([class]) {\n  margin-bottom: 1.875rem;\n}\n.info .info__content > .acf-innerblocks-container .tradingview-widget-container {\n  margin: 1.5625rem auto 2.5rem;\n  max-width: 28.75rem;\n  width: 100%;\n}\n@media (min-width: 768px) {\n  .info .info__content > .acf-innerblocks-container .tradingview-widget-container {\n    margin: 2.5rem auto 2.1875rem;\n  }\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container .tradingview-widget-container {\n    margin: 4.125rem auto 5.8125rem;\n  }\n}\n.info .info__content > .acf-innerblocks-container .tradingview-widget-container iframe {\n  min-height: 12.125rem;\n}\n@media (min-width: 992px) {\n  .info .info__content > .acf-innerblocks-container .tradingview-widget-container iframe {\n    min-height: 16.5rem;\n  }\n}\n.info .info__content > .acf-innerblocks-container .tradingview-widget-copyright {\n  display: none;\n}\n.info--chart .info__content {\n  margin-top: 0.9375rem;\n}\n@media (min-width: 992px) {\n  .info--chart .info__content {\n    margin-top: 5.5625rem;\n  }\n}\n.info--chart .info__content .acf-innerblocks-container {\n  display: flex;\n  flex-direction: column;\n}\n.info--chart .info__content .acf-innerblocks-container .wp-block-heading {\n  margin-bottom: 2rem;\n}\n@media (min-width: 768px) {\n  .info--chart .info__content .acf-innerblocks-container .wp-block-heading {\n    max-width: 33.375rem;\n    margin-bottom: 1.875rem;\n  }\n}\n@media (min-width: 1200px) {\n  .info--chart .info__content .acf-innerblocks-container .wp-block-heading {\n    margin-left: 3.5625rem;\n    margin-bottom: 2.8125rem;\n  }\n}\n.info--chart .info__content .acf-innerblocks-container p {\n  align-self: center;\n  max-width: 26.125rem;\n  margin-bottom: 0;\n}\n.info--chart .info__content .acf-innerblocks-container p + p {\n  margin-bottom: 0.9375rem;\n}\n.info--chart .info__content .acf-innerblocks-container .is-style-base-narrow-font.h3 {\n  align-self: center;\n  max-width: 26.125rem;\n  margin-left: 0rem;\n  margin-top: 2.5rem;\n  margin-bottom: 1.5625rem;\n}\n.info--chart .info__content .acf-innerblocks-container ul {\n  align-self: center;\n  max-width: 26.125rem;\n}\n.info--chart .info__content .acf-innerblocks-container .wp-block-button {\n  align-self: baseline;\n  margin-top: 1.875rem;\n}\n.info--chart .info__content .acf-innerblocks-container .tradingview-widget-container + .wp-block-button {\n  margin-top: 0rem;\n}\n\n.info + .wp-block-heading {\n  margin: 4.0625rem auto 4.375rem;\n  padding: 0rem 1.625rem;\n  font-size: 2rem;\n  line-height: 0.9375;\n}\n@media (min-width: 768px) {\n  .info + .wp-block-heading {\n    margin: 5.125rem auto 7.25rem;\n    padding: 0rem 4.375rem;\n  }\n}\n@media (min-width: 992px) {\n  .info + .wp-block-heading {\n    margin: 6.25rem auto 15.3125rem;\n  }\n}\n\n.hero[data-pattern=yes] + .info {\n  margin: 8.375rem 0rem 3.75rem 0rem;\n}\n@media (min-width: 768px) {\n  .hero[data-pattern=yes] + .info {\n    margin: 9rem 0rem 5.3125rem 0rem;\n  }\n}\n@media (min-width: 992px) {\n  .hero[data-pattern=yes] + .info {\n    margin: 9rem 0rem 0rem 0rem;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1pbmZvL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX21peGlucy5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTtFQUdJOztBQzBpQkY7RUQ3aUJGO0lBTVE7OztBQ3VpQk47RUQ3aUJGO0lBVVE7OztBQUdKO0VBQ0k7RUFDQTs7QUFRZ0I7RUFDSTs7QUNxaEIxQjtFRHRoQnNCO0lBSVE7OztBQU9wQjtFQUNJOztBQzBnQmQ7RUQzZ0JVO0lBSVE7OztBQUlBO0VBQ0k7O0FBRUE7RUFDSTs7QUMrZjFCO0VEM2ZrQjtJQUVRO0lBQ0E7SUFFQTs7O0FBT1o7RUFDSTs7QUM4ZWxCO0VEL2VjO0lBSVE7OztBQzJldEI7RUQvZWM7SUFRUTs7O0FDdWV0QjtFRC9kTTtJQUVROzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTs7QUNvZFY7RUR2ZE07SUFNUTtJQUNBOzs7QUNnZGQ7RUR2ZE07SUFXUTs7O0FDNGNkO0VEeGNjO0lBRVE7OztBQ3NjdEI7RURsY2M7SUFFUTs7O0FDZ2N0QjtFRDNiRztJQUVFOzs7QUN5Ykw7RURyYmtCO0lBRWI7OztBQ21iTDtFRDVhYztJQUVROzs7QUMwYXRCO0VEdGFjO0lBRVE7OztBQUlSO0VBQ0k7O0FDK1psQjtFRGhhYztJQUlROzs7QUFJUjtFQUNJOztBQ3VabEI7RUR4WmM7SUFJUTs7O0FDb1p0QjtFRDlZYztJQUVRO0lBQ0E7OztBQzJZdEI7RUR4WWtCO0lBRVE7OztBQ3NZMUI7RUR4WWtCO0lBTVE7OztBQ2tZMUI7RUQ1WGtCO0lBRVE7OztBQzBYMUI7RUQ1WGtCO0lBTVE7OztBQU9wQjtFQUNJO0VBQ0E7RUFFQTtFQUVBOztBQ3lXVjtFRC9XTTtJQVNRO0lBQ0E7SUFDQTs7O0FDb1dkO0VEL1dNO0lBZVE7SUFDQTtJQUNBOzs7QUM4VmQ7RUQxVmM7SUFFUTtJQUNBOzs7QUN1VnRCO0VEblZjO0lBRVE7SUFDQTs7O0FDZ1Z0QjtFRDFVYztJQUVROzs7QUN3VXRCO0VEcFVjO0lBRVE7OztBQ2tVdEI7RURwVWM7SUFNUTs7O0FBS1o7RUFDSTtFQUNBO0VBRUE7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQUdJO0VBQ0k7O0FDd1N0QjtFRHpTa0I7SUFJUTs7O0FBTWhCO0VBQ0k7O0FDOFJkO0VEL1JVO0lBSVE7OztBQUlSO0VBQ0k7RUFFQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBOztBQ3lRbEI7RURsUmM7SUFZUTtJQUNBOzs7QUNxUXRCO0VEbFJjO0lBaUJRO0lBQ0E7SUFFQTtJQUNBOzs7QUFHSjtFQUNJO0VBRUE7RUFDQTs7QUNzUHRCO0VEMVBrQjtJQU9ROzs7QUNtUDFCO0VEMVBrQjtJQVdRO0lBQ0E7SUFFQTtJQUNBOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7O0FDNE5sQjtFRHRPYztJQWFRO0lBQ0E7SUFFQTtJQUNBOzs7QUFNaEI7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUMwTVY7RUQvTU07SUFRUTs7O0FDdU1kO0VEL01NO0lBWVE7OztBQUdKO0VBQ0k7RUFFQTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTs7QUNzTGQ7RUQxTFU7SUFPUTtJQUNBOzs7QUNrTGxCO0VEN0tNO0lBRVE7OztBQzJLZDtFRDdLTTtJQU1ROzs7QUN1S2Q7RURuS2M7SUFFUTs7O0FBS0o7RUVqVWxCO0VBakNDOztBRDhmRDtFRDVKa0I7SUVqVWxCO0lBakNDOzs7QUYwV2lCO0VFelVsQjtFQWpDQztFRjRXcUI7RUFDQSxhR2xaTDtFSG1aSztFQUNBOztBQytJdEI7RURwSmtCO0lFelVsQjtJQWpDQztJRm1YeUI7OztBQzJJMUI7RURwSmtCO0lBYVE7OztBQUdKO0VBQ0k7O0FBTVI7RUVoV2xCO0VBakNDO0VGbVlxQjtFQUNBO0VBQ0EsYUcxYUw7RUgyYUs7O0FBS0o7RUUxV2xCO0VBakNDO0VGNllxQjtFQUNBO0VBQ0EsYUdwYkw7RUhxYks7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBRUE7O0FDNkZsQjtFRGpHYztJQU9ROzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBTVI7RUFDSTs7QUFJUjtFQUNJOztBQ29FbEI7RURyRWM7SUFJUTs7O0FDaUV0QjtFRHJFYztJQVFROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUVBOztBQ2tEdEI7RUR0RGtCO0lBT1E7OztBQUlSO0VBQ0k7O0FDMEN0QjtFRDNDa0I7SUFJUTs7O0FDdUMxQjtFRG5Da0I7SUFFUTtJQUNBO0lBQ0E7OztBQytCMUI7RURuQ2tCO0lBUVE7OztBQUtaO0VFdmNkO0VBakNDOztBRjRlYTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQ1dsQjtFRGRjO0lBTVE7OztBQ1F0QjtFRGRjO0lBVVE7OztBQUdKO0VBQ0k7O0FDQXRCO0VERGtCO0lBSVE7OztBQUtaO0VBQ0k7O0FBUVI7RUFDSTs7QUNsQmQ7RURpQlU7SUFJUTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FDN0J0QjtFRDRCa0I7SUFJUTtJQUNBOzs7QUNqQzFCO0VENEJrQjtJQVNRO0lBQ0E7OztBQUlSO0VBQ0k7RUFFQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFFQTs7QUFHSjtFQUNJO0VBRUE7O0FBR0o7RUFDSTs7O0FBUXhCO0VBQ0k7RUFDQTtFRWxqQkY7RUFqQ0M7O0FEOGZEO0VEbUZGO0lBT1E7SUFDQTs7O0FDM0ZOO0VEbUZGO0lBWVE7Ozs7QUFJUjtFQUNJOztBQ3BHRjtFRG1HRjtJQUlROzs7QUN2R047RURtR0Y7SUFRUSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9rYnJvL3BhcnRzL2d1dGVuYmVyZy9hY2YtaW5mby9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLmluZm8ge1xyXG4gICAgJGJsb2NrOiAmO1xyXG5cclxuICAgIG1hcmdpbjogcmVtKDgwKSByZW0oMCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgbWFyZ2luOiByZW0oMTEyKSByZW0oMCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgbWFyZ2luOiByZW0oODYpIHJlbSgwKTtcclxuICAgIH1cclxuXHJcbiAgICAmW2RhdGEtZ3JhZGllbnQ9XCJ5ZXNcIl0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgfVxyXG5cclxuICAgICZbZGF0YS1ncmFkaWVudC1sb2NhdGlvbj1cInRvcFwiXSB7XHJcbiAgICAgICAgLmluZm8ge1xyXG4gICAgICAgICAgICAmX19pbm5lciB7XHJcbiAgICAgICAgICAgICAgICAmLS1pbWFnZS1zaWRlIHtcclxuICAgICAgICAgICAgICAgICAgICAmLWxlZnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5mb19faW1hZ2VfX2dyYWRpZW50LS10b3Age1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgtMjIyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD03NjdweCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbSgtMzEyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDczKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmID4gLmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGgyLndwLWJsb2NrLWhlYWRpbmc6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1Myk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmICsgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLWFycm93LXJpZ2h0LCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLWFycm93LXJpZ2h0LXdpZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMjkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmX19pbWFnZSB7XHJcbiAgICAgICAgICAgICAgICAmX193cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDExNyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLmluZm8tLWNoYXJ0KSB7XHJcbiAgICAgICAgLmluZm9fX2lubmVyLS1pbWFnZS1zaWRlLWxlZnQuaW5mb19faW5uZXItLWNvbnRlbnQtYWxpZ25tZW50LWNlbnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTEwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAjeyRibG9ja30ge1xyXG4gICAgICAgICZfX2lubmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiByZW0oNTMpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgICAgICAgICAgZ2FwOiByZW0oMzQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgIGdhcDogcmVtKDU1KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi0tY29udGVudC1hbGlnbm1lbnQge1xyXG4gICAgICAgICAgICAgICAgJi1yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDExMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYtbGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLWNlbnRlciB7XHJcblx0XHRcdFx0XHQmLmluZm9fX2lubmVyLS1pbWFnZS1zaWRlLWRlZmF1bHQge1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcsJzw9MTE5OXB4Jykge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0oLTcwKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmLmluZm9fX2lubmVyLS1pbWFnZS1zaWRlLXJpZ2h0IHtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgxMTApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLS1nYXAge1xyXG4gICAgICAgICAgICAgICAgJi01NSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogcmVtKDU1KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi03MiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogcmVtKDcyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi0xMTAge1xyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogcmVtKDM0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogcmVtKDExMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYtMTE2IHtcclxuICAgICAgICAgICAgICAgICAgICBnYXA6IHJlbSg5MCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IHJlbSgxMTYpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi0taW1hZ2Utc2lkZSB7XHJcbiAgICAgICAgICAgICAgICAmLWxlZnQge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuaW5mb19faW1hZ2VfX3dyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oLTEzMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLXJpZ2h0IHtcclxuICAgICAgICAgICAgICAgICAgICAuaW5mb19faW1hZ2VfX3dyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKC0xMzIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX19pbWFnZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg1MjMpO1xyXG5cclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyODQpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDQwMCk7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHJlbSg0MDApO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjIwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDUzMCk7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHJlbSg1MzApO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oODIwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi0td2lkdGgge1xyXG4gICAgICAgICAgICAgICAgJi01MzAge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDUzMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDUzMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYtNTY4IHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg1NjgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHJlbSg1NjgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi0taGVpZ2h0IHtcclxuICAgICAgICAgICAgICAgICYtODIwIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oODIwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi05NTIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg2NzEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDk1Mik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IHRvcDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9fd3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICYtLWhpZGUge1xyXG4gICAgICAgICAgICAgICAgICAgICYteWVzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYgKyAuaW5mb19faW1hZ2VzIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtNTgpO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtNzYpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmX19ncmFkaWVudCB7XHJcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICAgICAgICAgICAgICYtLWJvdHRvbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtMzk4KTtcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IHJlbSgtNjMyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg4MzMpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTQ1NykgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtNDMwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiByZW0oLTY4MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogcmVtKC01OTApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IHJlbSgtNzI4KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTM1NykgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTQ1NykgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYtbGluZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtNzAyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiByZW0oLTYwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtNjA2KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiByZW0oLTM3NCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IHJlbSgtNzIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTAxMSkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDU2OCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLS10b3Age1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogcmVtKC00MTQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogcmVtKC01NjgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDEyMTUpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTMyMikgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0oLTQ2Mik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogcmVtKC02NjQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgxNDE1KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxNTIyKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faW1hZ2VzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiByZW0oMjgpO1xyXG5cclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgIGdhcDogcmVtKDM3KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDIzOCk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyMzgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDMxNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzE1KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDU4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTU4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJiA+IC5hY2YtaW5uZXJibG9ja3MtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIC53cC1ibG9jay1zcGFjZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTExOTlweCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJiA+IGgyLndwLWJsb2NrLWhlYWRpbmcge1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMzIsIDMyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCg1MiwgNTIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmLmlzLXN0eWxlLWJhc2UtbmFycm93LWZvbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDM2LCAzNik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oNy4yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoNDIsIDQyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oOC40KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLmhhcy10ZXh0LWFsaWduLWNlbnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmgyIHtcclxuICAgICAgICAgICAgICAgICAgICAmLmlzLXN0eWxlLWJhc2UtbmFycm93LWZvbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDM2LCAzNik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oNy4yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuaDMge1xyXG4gICAgICAgICAgICAgICAgICAgICYuaXMtc3R5bGUtYmFzZS1uYXJyb3ctZm9udCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMjYsIDI4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgyLjYpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGZvbnQtYmFzZS1uYXJyb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5pbmxpbmUgKyAud3AtYmxvY2staGVhZGluZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDU2KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5pcy1zdHlsZS1sZWFkcGFyYWdyYXBoIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHVsOm5vdChbY2xhc3NdLCA6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDc0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAubGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oNzgpIDAgMCAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oOTEpIDAgMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtKDg3KSAwIDAgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJl9fbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1MSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiByZW0oNTIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6IHJlbSg1NCkgcmVtKDU4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJl9faXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAyOXB4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTk5MXB4Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oLTMwOSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTc2N3B4Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcDpub3QoLmlzLXN0eWxlLXN1YmhlYWRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDE4LCAzMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcCArIHA6bm90KFtjbGFzc10pIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC50cmFkaW5ndmlldy13aWRnZXQtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSgyNSkgYXV0byByZW0oNDApO1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDQ2MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSg0MCkgYXV0byByZW0oMzUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtKDY2KSBhdXRvIHJlbSg5Myk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTk0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDI2NCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tY2hhcnQge1xyXG4gICAgICAgIC5pbmZvIHtcclxuICAgICAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTUpO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg4OSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLndwLWJsb2NrLWhlYWRpbmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg1MzQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDU3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0NSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg0MTgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJiArIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmlzLXN0eWxlLWJhc2UtbmFycm93LWZvbnQuaDMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg0MTgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg0MTgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLndwLWJsb2NrLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC50cmFkaW5ndmlldy13aWRnZXQtY29udGFpbmVyICsgLndwLWJsb2NrLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pbmZvICsgLndwLWJsb2NrLWhlYWRpbmcge1xyXG4gICAgbWFyZ2luOiByZW0oNjUpIGF1dG8gcmVtKDcwKTtcclxuICAgIHBhZGRpbmc6IHJlbSgwKSByZW0oMjYpO1xyXG5cclxuICAgIEBpbmNsdWRlIGZvbnQoMzIsIDMwKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICBtYXJnaW46IHJlbSg4MikgYXV0byByZW0oMTE2KTtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMCkgcmVtKDcwKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICBtYXJnaW46IHJlbSgxMDApIGF1dG8gcmVtKDI0NSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oZXJvW2RhdGEtcGF0dGVybj1cInllc1wiXSArIC5pbmZvIHtcclxuICAgIG1hcmdpbjogcmVtKDEzNCkgcmVtKDApIHJlbSg2MCkgcmVtKDApO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgIG1hcmdpbjogcmVtKDE0NCkgcmVtKDApIHJlbSg4NSkgcmVtKDApO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG4gICAgICAgIG1hcmdpbjogcmVtKDE0NCkgcmVtKDApIHJlbSgwKSByZW0oMCk7XHJcbiAgICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuIiwiLy8qIEJSRUFLUE9JTlRTICovL1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzc1cHgsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCBtYXg6IDE5MjBweCk7XHJcblxyXG4vLyogQ09OVEFJTkVSIHdpZHRoIHZhcmlhYmxlcyAqLy9cclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTA4MHB4O1xyXG4kY29udGFpbmVyLXh4bDogdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLXdpZGUtc2l6ZSk7IC8vIHRoZW1lLmpzb24gc2V0dGluZ3MubGF5b3V0XHJcbiRjb250YWluZXItcGFkZGluZzogNzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuJGZvbnQtYmFzZS1uYXJyb3c6ICdkaW4tMjAxNC1uYXJyb3cnO1xyXG4kZm9udC10aXRsZTogJ21pbmVydmEtbW9kZXJuJztcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOy8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udFNpemVzXHJcbiRsaW5lLWhlaWdodC1kZXNrdG9wOiAxLjU7XHJcblxyXG4vLyBTZXQgTW9iaWxlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IHN0eWxlcyBpbiB0aGVtZS5qc29uIHN0eWxlcy50eXBvZ3JhcGh5XHJcblxyXG4vLyogU1BBQ0lOR1MgKi8vXHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDI2OyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kc3BhY2luZzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbiRtYXJnaW4tbW9iaWxlOiAzMDsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJG1hcmdpbjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogdmFyKC0td3AtLWN1c3RvbS0tbWVkaWEtc3BhY2luZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5tZWRpYVNwYWNpbmc7IC8vcHhcclxuXHJcbi8vKiBDT0xPUlMgKi8vXHJcblxyXG4vLyBCYXNlIENvbG9yc1xyXG4kY29sb3ItLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1kYXJrKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpZ2h0KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE1haW4gQ29sb3JzXHJcbiRjb2xvci0tcHJpbWFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXByaW1hcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE90aGVyIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS01OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBFbGVtZW50cyBDb2xvcnNcclxuJGNvbG9yLS1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJnKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ib2R5OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWJvcmRlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8gVGhlbWUgVGV4dCBDb2xvcnNcclxuJGNvbG9yLS10ZXh0OiAkY29sb3ItLWRhcms7XHJcbiRjb2xvci0tdGV4dC1saWdodDogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1saW5rOiAkY29sb3ItLXByaW1hcnk7XHJcbiRjb2xvci0tbGluay1ob3ZlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8qIE9USEVSICovL1xyXG5cclxuLy8gVHJhbnNpdGlvbnNcclxuJHRyYW5zLXNwZWVkOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkKTtcclxuJHRyYW5zLXNwZWVkLWxvbmdlcjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1sb25nZXIpO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb24tcGF0dGVybjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24tcGF0dGVybik7XHJcbiR0cmFucy1mdW5jOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XHJcblxyXG4vLyBPdXRsaW5lXHJcbiRvdXRsaW5lOiAycHggc29saWQgYmx1ZTsiXX0= *\/\n<\/style>\t<div class=\"container\">\r\n\t\t<div class=\"info__inner info__inner--gap-110 info__inner--image-side-left info__inner--content-alignment-center\">\r\n\t\t\t<div class=\"info__content bounce bounce-right\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<h2 class=\"wp-block-heading has-secondary-color has-text-color has-link-color wp-elements-29908f526736484468ec4d4e8e6406f1\">Corporate Profile<\/h2>\n\n\n<style>\/* Text Elements *\/\np.is-style-uppercase {\n  text-transform: uppercase;\n}\np.is-style-preheading {\n  color: var(--wp--preset--color--secondary);\n  text-transform: uppercase;\n}\np.is-style-subheading {\n  font-size: 1rem;\n  line-height: 1.25;\n  letter-spacing: 0.203125rem;\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  font-weight: 800;\n  color: var(--wp--preset--color--dark);\n  text-transform: uppercase;\n  margin-bottom: 1.5rem;\n}\n@media (min-width: 992px) {\n  p.is-style-subheading {\n    font-size: 1.125rem;\n    line-height: 1.2222222222;\n    letter-spacing: 0.221875rem;\n  }\n}\np.is-style-leadparagraph {\n  font-size: 1.3125rem !important;\n  line-height: 1.875rem !important;\n  font-weight: 700;\n  font-family: \"minerva-modern\", sans-serif;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2NvcmUtcGFyYWdyYXBoL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FBRUM7RUFDQzs7QUFHRDtFQUNDLE9DK0JpQjtFRDlCakI7O0FBRUQ7RUVzRUM7RUFqQ0M7RUZuQ0Q7RUFDQTtFQUNBO0VBQ0EsT0NrQlk7RURqQlo7RUFFQTs7QUcyaEJBO0VIbmlCRDtJRXNFQztJQWpDQztJRnhCQTs7O0FBR0Y7RUFDQztFQUNBO0VBQ0E7RUFDQSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9rYnJvL3BhcnRzL2d1dGVuYmVyZy9jb3JlLXBhcmFncmFwaC9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLyogVGV4dCBFbGVtZW50cyAqL1xyXG5wIHtcclxuXHQmLmlzLXN0eWxlLXVwcGVyY2FzZSB7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1wcmVoZWFkaW5nIHtcclxuXHRcdGNvbG9yOiAkY29sb3ItLXNlY29uZGFyeTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0fVxyXG5cdCYuaXMtc3R5bGUtc3ViaGVhZGluZyB7XHJcblx0XHRAaW5jbHVkZSBmb250KDE2LCAyMCk7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogcmVtKDMuMjUpO1xyXG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2UsIHNhbnMtc2VyaWY7XHJcblx0XHRmb250LXdlaWdodDogODAwO1xyXG5cdFx0Y29sb3I6ICRjb2xvci0tZGFyaztcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI0KTtcclxuXHRcdC8vIG1hcmdpbi1yaWdodDogcmVtKC0zLjYpO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250KDE4LCAyMik7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oMy41NSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuaXMtc3R5bGUtbGVhZHBhcmFncmFwaCB7XHJcblx0XHRmb250LXNpemU6IHJlbSgyMSkgIWltcG9ydGFudDtcclxuXHRcdGxpbmUtaGVpZ2h0OiByZW0oMzApICFpbXBvcnRhbnQ7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LXRpdGxlLCBzYW5zLXNlcmlmO1xyXG5cdH1cclxufVxyXG4iLCIvLyogQlJFQUtQT0lOVFMgKi8vXHJcbiRicmVha3BvaW50czogKHhzOiAzNzVweCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDQwcHgsIG1heDogMTkyMHB4KTtcclxuXHJcbi8vKiBDT05UQUlORVIgd2lkdGggdmFyaWFibGVzICovL1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMDgwcHg7XHJcbiRjb250YWluZXIteHhsOiB2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplKTsgLy8gdGhlbWUuanNvbiBzZXR0aW5ncy5sYXlvdXRcclxuJGNvbnRhaW5lci1wYWRkaW5nOiA3MDsgLy90aGVtZS5qc29uIHNldHRpbmcuY3VzdG9tLmJhc2VQYWRkaW5nXHJcblxyXG4vLyogRk9OVFMgKi8vXHJcbiRmb250LWJhc2U6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtZmFtaWx5LS1iYXNlLWZvbnQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRGYW1pbGllc1xyXG4kZm9udC1iYXNlLW5hcnJvdzogJ2Rpbi0yMDE0LW5hcnJvdyc7XHJcbiRmb250LXRpdGxlOiAnbWluZXJ2YS1tb2Rlcm4nO1xyXG5cclxuJGZvbnQtc2l6ZS1kZXNrdG9wOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLW1lZGl1bSk7Ly90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250U2l6ZXNcclxuJGxpbmUtaGVpZ2h0LWRlc2t0b3A6IDEuNTtcclxuXHJcbi8vIFNldCBNb2JpbGUgZm9udC1zaXplIC8gbGluZS1oZWlnaHQgc3R5bGVzIGluIHRoZW1lLmpzb24gc3R5bGVzLnR5cG9ncmFwaHlcclxuXHJcbi8vKiBTUEFDSU5HUyAqLy9cclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogMjY7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnNwYWNpbmcuc3BhY2luZ1NpemVzXHJcbiRzcGFjaW5nOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1tZWRpdW0pO1xyXG5cclxuJG1hcmdpbi1tb2JpbGU6IDMwOyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kbWFyZ2luOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1tZWRpdW0pO1xyXG5cclxuLy8gTWVkaWEgU3BhY2luZ1xyXG4kbWVkaWEtbWFyZ2luOiB2YXIoLS13cC0tY3VzdG9tLS1tZWRpYS1zcGFjaW5nKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY3VzdG9tLm1lZGlhU3BhY2luZzsgLy9weFxyXG5cclxuLy8qIENPTE9SUyAqLy9cclxuXHJcbi8vIEJhc2UgQ29sb3JzXHJcbiRjb2xvci0tZGFyazogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWRhcmspOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWxpZ2h0OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tbGlnaHQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gTWFpbiBDb2xvcnNcclxuJGNvbG9yLS1wcmltYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tcHJpbWFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tc2Vjb25kYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2Vjb25kYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0xOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5LTI6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5LTIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gT3RoZXIgQ29sb3JzXHJcbiRjb2xvci0tMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTEpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTI6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0zOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tNDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTU6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci01KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIEVsZW1lbnRzIENvbG9yc1xyXG4kY29sb3ItLWJnOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWJvZHk6ICRjb2xvci0tbGlnaHQ7XHJcbiRjb2xvci0tYm9yZGVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyBUaGVtZSBUZXh0IENvbG9yc1xyXG4kY29sb3ItLXRleHQ6ICRjb2xvci0tZGFyaztcclxuJGNvbG9yLS10ZXh0LWxpZ2h0OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWxpbms6ICRjb2xvci0tcHJpbWFyeTtcclxuJGNvbG9yLS1saW5rLWhvdmVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyogT1RIRVIgKi8vXHJcblxyXG4vLyBUcmFuc2l0aW9uc1xyXG4kdHJhbnMtc3BlZWQ6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQpO1xyXG4kdHJhbnMtc3BlZWQtbG9uZ2VyOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWxvbmdlcik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb246IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtYW5pbWF0aW9uKTtcclxuJHRyYW5zLXNwZWVkLWFuaW1hdGlvbi1wYXR0ZXJuOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbi1wYXR0ZXJuKTtcclxuJHRyYW5zLWZ1bmM6IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcclxuXHJcbi8vIE91dGxpbmVcclxuJG91dGxpbmU6IDJweCBzb2xpZCBibHVlOyIsIi8vXHJcbi8vIE1JWElOU1xyXG4vL1xyXG5AbWl4aW4gY2Yge1xyXG5cdCY6YmVmb3JlLFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblxyXG5cdFx0ZGlzcGxheTogdGFibGU7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHZ3LXNpemUoJHMsICR3OiAxNDQwKSB7XHJcblx0QHJldHVybiAoJHMgLyAkdykgKiAxMDAgKyB2dztcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbSgkc2l6ZVZhbHVlOiAxNikge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZVZhbHVlIC8gMTYpICsgcmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVsKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplIC8gJHJlbCk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBlbSgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gcmVsKCRzaXplLCAkcmVsKSAqIDFlbTtcclxufVxyXG5cclxuQG1peGluIG9iamVjdC1maXQtY292ZXIoKSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblxyXG5cdG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG5AbWl4aW4gbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OiAwKSB7XHJcblx0QGlmICRsaW5lLWhlaWdodCAhPSAwIHtcclxuXHRcdEBpZiAkbGluZS1oZWlnaHQgPCAxMCB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XHJcblx0XHR9XHJcblx0XHRAZWxzZSB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiAkbGV0dGVyLXNwYWNpbmcgIT0gMCB7XHJcblx0XHRAaWYgJGxldHRlci1zcGFjaW5nIDwgMTAge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHR9XHJcblx0XHRAZWxzZSB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oKCRmb250LXNpemUgKiAkbGV0dGVyLXNwYWNpbmcpIC8gMTAwMCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZm9udCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0OiAwLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgdHlwZS1vZigkZm9udC1zaXplLW1hcCkgPT0gJ21hcCcge1xyXG5cdFx0QGVhY2ggJGJyZWFrcG9pbnQsICRmb250LXNpemUgaW4gJGZvbnQtc2l6ZS1tYXAge1xyXG5cdFx0XHRAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZSk7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsaW5lLWhlaWdodCk7XHJcblx0XHRcdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAZWxzZSB7XHJcblx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBlbHNlIHtcclxuXHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUtbWFwKTtcclxuXHJcblx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUtbWFwLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG5cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcclxuLy8vICApO1xyXG4vLy9cclxuJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcblx0J3NjcmVlbic6ICdzY3JlZW4nLFxyXG5cdCdwcmludCc6ICdwcmludCcsXHJcblx0J2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcclxuXHQnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuXHQncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG5cdCdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XHJcbi8vL1xyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuXHQncHgnOiAxLFxyXG5cdCdlbSc6IDAuMDEsXHJcblx0J3JlbSc6IDAuMSxcclxuXHQnJzogMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcclxuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXHJcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xyXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAgLmZvbyB7XHJcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xyXG5cclxuLy8vL1xyXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcclxuXHRcdEBlcnJvciAkbWVzc2FnZTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEB3YXJuICRtZXNzYWdlO1xyXG5cdFx0JF86IG5vb3AoKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJG1lc3NhZ2U7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5AZnVuY3Rpb24gbm9vcCgpIHt9XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG5cdEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0XHRcdEByZXR1cm4gJG9wZXJhdG9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0JF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuXHQkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuXHRcdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuXHRAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG5cdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuXHRAaWYgbm90ICRpbnRlcnZhbCB7XHJcblx0XHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdFx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0XHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdFx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG5cdH1cclxuXHJcblx0QGlmICRvcGVyYXRvciA9PSAnPicge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcblx0Ly8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG5cdC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuXHRAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuXHRcdEByZXR1cm4gJHZhbHVlO1xyXG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuXHRcdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcblx0fVxyXG5cclxuXHQkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuXHQkcmVzdWx0OiAwO1xyXG5cdCRkaWdpdHM6IDA7XHJcblx0JG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG5cdCRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcblx0Ly8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcblx0QGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuXHR9XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xyXG5cdFx0XHRAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xyXG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XHJcblxyXG5cdEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcclxuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxyXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxyXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXHJcbi8vLyBmb3IgaW5zdGFuY2UuXHJcbi8vL1xyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHRAY29udGVudDtcclxuXHJcblx0Ly8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ== *\/\n<\/style>\n<p class=\"is-style-leadparagraph has-secondary-color has-text-color has-link-color wp-elements-dd0cfc2170bb2acceb67a00a985536d2 wp-block-paragraph\">K-Bro was founded in 1954 and is the largest owner and operator of laundry and linen processing facilities in Canada. K-Bro provides a comprehensive range of general linen and operating room linen processing, management and distribution services to healthcare institutions, hotels and other commercial accounts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">K-Bro currently operates ten processing facilities and two distribution centres in ten Canadian cities: Qu\u00e9bec City, Montr\u00e9al, Toronto, Regina, Saskatoon, Prince Albert, Edmonton, Calgary, Vancouver and Victoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fishers, acquired by K-Bro in 2017, was established in 1900 and is an operator of laundry and linen processing facilities in Scotland and the North of England. Fishers provides linen rental, workwear hire and cleanroom garment services to the hospitality, healthcare, manufacturing and pharmaceutical sectors. Fishers&#8217; client base includes major hotel chains and prestigious venues across Scotland and the North of England. The company operates five sites with facilities in Perth, Newcastle, Livingston, Coatbridge, and Prestonhall.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Shortridge, acquired by K-Bro in 2024, has operated as a family run business since the 1990s and is based in Cumbria, with plants in Lillyhall, Dumfries and a distribution depot in Darlington. It specializes in providing high quality laundry services to local independent hospitality businesses, including hotels, B&amp;Bs, self-catering units and restaurants.<\/p>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"info__image__wrapper info__image__wrapper--hide-no\">\r\n\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"info__image__gradient info__image__gradient--top\" width=\"1415\" height=\"1522\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/themes\/kbro\/assets\/images\/info-gradient-top.png\" alt=\"\" \/>\r\n\t\t\t\t\t\t\t\t<div class=\"info__image info__image--width-530 info__image--height-820 info__image--gradient-yes bounce bounce-left\">\r\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"952\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-568x952.png\" class=\"attachment-info-img size-info-img\" alt=\"K-Bro staff members overlooking the production floor\" \/>\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"two-images has-text-align-left\" data-pattern=\"no\" data-title=\"no\">\r\n\t<style>.two-images {\n  position: relative;\n  z-index: 1;\n}\n.two-images[data-pattern=yes] {\n  margin-top: 5rem;\n}\n@media (min-width: 768px) {\n  .two-images[data-pattern=yes] {\n    margin-top: 10.375rem;\n  }\n}\n@media (min-width: 992px) {\n  .two-images[data-pattern=yes] {\n    margin-top: 17.0625rem;\n  }\n}\n.two-images[data-title=yes] .two-images__content .acf-innerblocks-container .wp-block-image::after {\n  padding-bottom: 201.0152284264%;\n}\n@media (min-width: 768px) {\n  .two-images[data-title=yes] .two-images__content .acf-innerblocks-container .wp-block-image::after {\n    padding-bottom: 94.2857142857%;\n  }\n}\n@media (min-width: 992px) {\n  .two-images[data-title=yes] .two-images__content .acf-innerblocks-container .wp-block-image::after {\n    padding-bottom: 54.9237170596%;\n  }\n}\n@media (min-width: 1440px) {\n  .two-images[data-title=yes] .two-images__content .acf-innerblocks-container .wp-block-image img {\n    height: 24.75rem !important;\n  }\n}\n@media (max-width: 767px) {\n  .two-images[data-title=yes] .two-images__content .acf-innerblocks-container .wp-block-column {\n    width: 50%;\n  }\n}\n.two-images .two-images__pattern {\n  position: absolute;\n  right: 0;\n  top: -11.9375rem;\n}\n@media (min-width: 992px) {\n  .two-images .two-images__pattern {\n    top: -18.0625rem;\n  }\n}\n.two-images .two-images__title {\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  z-index: 1;\n  transform: translate(-50%, -50%);\n  font-size: 1.625rem;\n  line-height: 1;\n  letter-spacing: 0.525rem;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-transform: uppercase;\n  text-align: center;\n  color: var(--wp--preset--color--light);\n  margin-right: -0.525rem;\n  padding: 0 1.625rem;\n  width: 100%;\n}\n@media (min-width: 390px) {\n  .two-images .two-images__title {\n    font-size: 2.25rem;\n    line-height: 1;\n  }\n}\n@media (min-width: 768px) {\n  .two-images .two-images__title {\n    font-size: 2.625rem;\n    line-height: 1;\n  }\n}\n.two-images .two-images__content .acf-innerblocks-container {\n  display: flex;\n  flex-wrap: wrap;\n}\n.two-images .two-images__content .acf-innerblocks-container .wp-block-column {\n  width: 100%;\n}\n@media (min-width: 768px) {\n  .two-images .two-images__content .acf-innerblocks-container .wp-block-column {\n    width: 50%;\n  }\n}\n.two-images .two-images__content .acf-innerblocks-container .wp-block-image {\n  position: relative;\n  overflow: hidden;\n}\n.two-images .two-images__content .acf-innerblocks-container .wp-block-image::after {\n  content: \"\";\n  display: block;\n  padding-bottom: 51.2820512821%;\n}\n@media (min-width: 768px) {\n  .two-images .two-images__content .acf-innerblocks-container .wp-block-image::after {\n    padding-bottom: 69.4444444444%;\n  }\n}\n@media (min-width: 1440px) {\n  .two-images .two-images__content .acf-innerblocks-container .wp-block-image::after {\n    display: none;\n  }\n}\n.two-images .two-images__content .acf-innerblocks-container .wp-block-image img, .two-images .two-images__content .acf-innerblocks-container .wp-block-image .components-resizable-box__container {\n  width: 100% !important;\n  height: 100% !important;\n  object-fit: cover;\n}\n@media (max-width: 1439px) {\n  .two-images .two-images__content .acf-innerblocks-container .wp-block-image img, .two-images .two-images__content .acf-innerblocks-container .wp-block-image .components-resizable-box__container {\n    position: absolute !important;\n    left: 0;\n    top: 0;\n  }\n}\n@media (min-width: 1440px) {\n  .two-images .two-images__content .acf-innerblocks-container .wp-block-image img, .two-images .two-images__content .acf-innerblocks-container .wp-block-image .components-resizable-box__container {\n    height: 31.25rem !important;\n  }\n}\n\n.cta[data-gradient=yes] + .two-images {\n  margin-top: 12.8125rem;\n}\n@media (min-width: 992px) {\n  .cta[data-gradient=yes] + .two-images {\n    margin-top: 18.625rem;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi10d28taW1hZ2VzL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX21peGlucy5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBR0M7RUFDQTs7QUFFQTtFQUNDOztBQ3NpQkE7RUR2aUJEO0lBSUU7OztBQ21pQkQ7RUR2aUJEO0lBUUU7OztBQVNHO0VBQ0M7O0FDcWhCTDtFRHRoQkk7SUFJRTs7O0FDa2hCTjtFRHRoQkk7SUFRRTs7O0FDOGdCTjtFRDFnQkk7SUFFRTs7O0FDd2dCTjtFRG5nQkc7SUFFRTs7O0FBU0w7RUFDQztFQUNBO0VBQ0E7O0FDcWZEO0VEeGZBO0lBTUU7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFRVdEO0VBakNDO0VGeUJBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0cxQ1k7RUg0Q1o7RUFDQTtFQUNBOztBQzZkRDtFRDllQTtJRWlCQTtJQWpDQzs7O0FEOGZEO0VEOWVBO0lFaUJBO0lBakNDOzs7QUY2Q0E7RUFDQztFQUNBOztBQUVBO0VBQ0M7O0FDNGNIO0VEN2NFO0lBSUU7OztBQUlGO0VBQ0M7RUFFQTs7QUFFQTtFQUNDO0VBQ0E7RUFFQTs7QUM0Yko7RURoY0c7SUFPRTs7O0FDeWJMO0VEaGNHO0lBV0U7OztBQUlGO0VBQ0M7RUFDQTtFQUVBOztBQzZhSjtFRGpiRztJQU9FO0lBQ0E7SUFDQTs7O0FDd2FMO0VEamJHO0lBYUU7Ozs7QUFTUDtFQUNDOztBQzBaQztFRDNaRjtJQUlFIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi10d28taW1hZ2VzL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG4udHdvLWltYWdlcyB7XHJcblx0JGJsb2NrOiAmO1xyXG5cclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogMTtcclxuXHJcblx0JltkYXRhLXBhdHRlcm49XCJ5ZXNcIl0ge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDgwKTtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDE2Nik7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IHJlbSgyNzMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0JltkYXRhLXRpdGxlPVwieWVzXCJdIHtcclxuXHRcdC50d28taW1hZ2VzIHtcclxuXHRcdFx0Jl9fY29udGVudCB7XHJcblx0XHRcdFx0LmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG5cdFx0XHRcdFx0LndwLWJsb2NrLWltYWdlIHtcclxuXHRcdFx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAyMDEuMDE1MjI4NDI2Mzk1OTQlO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA5NC4yODU3MTQyODU3MTQyOCU7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA1NC45MjM3MTcwNTk2MzkzOSU7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRpbWcge1xyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXh4bCcpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDM5NikgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQud3AtYmxvY2stY29sdW1uIHtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9NzY3cHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDUwJTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgICAjeyRibG9ja30ge1xyXG5cdFx0Jl9fcGF0dGVybiB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdHRvcDogcmVtKC0xOTEpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRcdFx0dG9wOiByZW0oLTI4OSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX190aXRsZSB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDogNTAlO1xyXG5cdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0ei1pbmRleDogMTtcclxuXHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgyNiwgMjYpO1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKDguNCk7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLW5hcnJvdywgc2Fucy1zZXJpZjtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS1saWdodDtcclxuXHJcblx0XHRcdG1hcmdpbi1yaWdodDogcmVtKC04LjQpO1xyXG5cdFx0XHRwYWRkaW5nOiAwIHJlbSgyNik7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49MzkwcHgnKSB7XHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udCgzNiwgMzYpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDQyLCA0Mik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jb250ZW50IHtcclxuXHRcdFx0LmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cclxuXHRcdFx0XHQud3AtYmxvY2stY29sdW1uIHtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogNTAlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LndwLWJsb2NrLWltYWdlIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHRcdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuXHRcdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDUxLjI4MjA1MTI4MjA1MTI4NSU7XHJcblxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogNjkuNDQ0NDQ0NDQ0NDQ0NDQlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14eGwnKSB7XHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGltZywgLmNvbXBvbmVudHMtcmVzaXphYmxlLWJveF9fY29udGFpbmVyIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRcdFx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc8PTE0MzlweCcpIHtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDUwMCkgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmN0YVtkYXRhLWdyYWRpZW50PVwieWVzXCJdICsgLnR3by1pbWFnZXMge1xyXG5cdG1hcmdpbi10b3A6IHJlbSgyMDUpO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSgyOTgpO1xyXG5cdH1cclxufVxyXG5cclxuLy8gLmluZm8gKyAudHdvLWltYWdlcyB7XHJcbi8vIFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiByZW0oMTUwKTtcclxuLy8gXHR9XHJcbi8vIH1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuIiwiLy8qIEJSRUFLUE9JTlRTICovL1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzc1cHgsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCBtYXg6IDE5MjBweCk7XHJcblxyXG4vLyogQ09OVEFJTkVSIHdpZHRoIHZhcmlhYmxlcyAqLy9cclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTA4MHB4O1xyXG4kY29udGFpbmVyLXh4bDogdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLXdpZGUtc2l6ZSk7IC8vIHRoZW1lLmpzb24gc2V0dGluZ3MubGF5b3V0XHJcbiRjb250YWluZXItcGFkZGluZzogNzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuJGZvbnQtYmFzZS1uYXJyb3c6ICdkaW4tMjAxNC1uYXJyb3cnO1xyXG4kZm9udC10aXRsZTogJ21pbmVydmEtbW9kZXJuJztcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOy8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udFNpemVzXHJcbiRsaW5lLWhlaWdodC1kZXNrdG9wOiAxLjU7XHJcblxyXG4vLyBTZXQgTW9iaWxlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IHN0eWxlcyBpbiB0aGVtZS5qc29uIHN0eWxlcy50eXBvZ3JhcGh5XHJcblxyXG4vLyogU1BBQ0lOR1MgKi8vXHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDI2OyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kc3BhY2luZzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbiRtYXJnaW4tbW9iaWxlOiAzMDsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJG1hcmdpbjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogdmFyKC0td3AtLWN1c3RvbS0tbWVkaWEtc3BhY2luZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5tZWRpYVNwYWNpbmc7IC8vcHhcclxuXHJcbi8vKiBDT0xPUlMgKi8vXHJcblxyXG4vLyBCYXNlIENvbG9yc1xyXG4kY29sb3ItLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1kYXJrKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpZ2h0KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE1haW4gQ29sb3JzXHJcbiRjb2xvci0tcHJpbWFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXByaW1hcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE90aGVyIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS01OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBFbGVtZW50cyBDb2xvcnNcclxuJGNvbG9yLS1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJnKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ib2R5OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWJvcmRlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8gVGhlbWUgVGV4dCBDb2xvcnNcclxuJGNvbG9yLS10ZXh0OiAkY29sb3ItLWRhcms7XHJcbiRjb2xvci0tdGV4dC1saWdodDogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1saW5rOiAkY29sb3ItLXByaW1hcnk7XHJcbiRjb2xvci0tbGluay1ob3ZlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8qIE9USEVSICovL1xyXG5cclxuLy8gVHJhbnNpdGlvbnNcclxuJHRyYW5zLXNwZWVkOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkKTtcclxuJHRyYW5zLXNwZWVkLWxvbmdlcjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1sb25nZXIpO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb24tcGF0dGVybjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24tcGF0dGVybik7XHJcbiR0cmFucy1mdW5jOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XHJcblxyXG4vLyBPdXRsaW5lXHJcbiRvdXRsaW5lOiAycHggc29saWQgYmx1ZTsiXX0= *\/\n<\/style>\t\t<div class=\"two-images__content\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><style>\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9rYnJvL3BhcnRzL2d1dGVuYmVyZy9jb3JlLWltYWdlL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbXX0= *\/\n<\/style>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"711\" src=\"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg\" alt=\"Large commercial laundry equipment\" class=\"wp-image-513\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg 1024w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-300x208.jpg 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-768x533.jpg 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-380x264.jpg 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-65x45.jpg 65w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-720x500.jpg 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-420x292.jpg 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-1064x739.jpg 1064w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-315x219.jpg 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-858x596.jpg 858w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-570x396.jpg 570w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-256x178.jpg 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-265x184.jpg 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1-432x300.jpg 432w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-two-images-1.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"750\" src=\"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2024\/01\/company-two-images.png\" alt=\"K-Bro employee holding clean linen\" class=\"wp-image-844\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images.png 1080w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-300x208.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-768x533.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-1024x711.png 1024w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-380x264.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-65x45.png 65w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-720x500.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-420x292.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-1064x739.png 1064w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-315x219.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-858x596.png 858w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-570x396.png 570w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-256x178.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-265x184.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-two-images-432x300.png 432w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/figure>\n<\/div>\n\n<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n\n<section class=\"wp-block-custom-container block-content  wp-block-custom-container--limited\"><style>@charset \"UTF-8\";\n.wp-block-custom-container {\n  margin: 5rem 0;\n}\n@media (min-width: 768px) {\n  .wp-block-custom-container {\n    margin: 7.5rem 0;\n  }\n}\n@media (min-width: 992px) {\n  .wp-block-custom-container {\n    margin: 10rem 0 10.5rem;\n  }\n}\n.wp-block-custom-container--limited .container {\n  max-width: 62.5rem;\n}\n.wp-block-custom-container--left {\n  position: relative;\n  z-index: 1;\n}\n@media (min-width: 992px) {\n  .wp-block-custom-container--left {\n    margin-top: 11.75rem;\n  }\n}\n.wp-block-custom-container--left .container {\n  max-width: 42.5rem;\n  margin: 0;\n}\n@media (min-width: 1440px) {\n  .wp-block-custom-container--left .container {\n    margin: 0 0 0 6.875rem;\n  }\n}\n@media (min-width: 1920px) {\n  .wp-block-custom-container--left .container {\n    max-width: 90rem;\n    margin: 0 auto;\n    padding-right: 25rem;\n  }\n}\n.wp-block-custom-container .wp-block-heading {\n  margin-bottom: 1.9375rem;\n}\n.wp-block-custom-container .wp-block-heading.is-style-base-narrow-font {\n  font-size: 2.375rem;\n  line-height: 1;\n  letter-spacing: 0.4625rem;\n}\n@media (min-width: 768px) {\n  .wp-block-custom-container .wp-block-heading.is-style-base-narrow-font {\n    font-size: 2.625rem;\n    line-height: 1;\n    letter-spacing: 0.525rem;\n  }\n}\n.wp-block-custom-container .wp-block-heading.is-style-base-font.has-medium-font-size {\n  font-size: 1.125rem !important;\n  line-height: 1.375rem;\n  letter-spacing: 0.225rem;\n  font-weight: 800;\n  margin-bottom: 1.625rem;\n}\n.wp-block-custom-container p {\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n}\n.wp-block-custom-container p + p {\n  margin-top: 1.875rem;\n}\n.wp-block-custom-container ul {\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n  padding: 0;\n  margin-left: 0.6875rem;\n  margin-top: -0.875rem;\n  list-style: none;\n}\n.wp-block-custom-container ul li {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.625rem;\n}\n.wp-block-custom-container ul li::before {\n  content: \"\u2022\";\n  display: block;\n}\n.wp-block-custom-container .wp-block-buttons {\n  margin-top: 3.1875rem;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2N1c3RvbS1jb250YWluZXIvc3R5bGUuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBO0VBQ0k7O0FDNGlCRjtFRDdpQkY7SUFJUTs7O0FDeWlCTjtFRDdpQkY7SUFRUTs7O0FBSUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7O0FDMGhCTjtFRDVoQkU7SUFLUTs7O0FBR0o7RUFDSTtFQUNBOztBQ2toQlY7RURwaEJNO0lBS1E7OztBQytnQmQ7RURwaEJNO0lBU1E7SUFDQTtJQUNBOzs7QUFLWjtFQUNJOztBQUVBO0VFb0NOO0VBakNDO0VGRFM7O0FDK2ZWO0VEamdCTTtJRW9DTjtJQWpDQztJRkdhOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBS1o7RUVjRjtFQWpDQzs7QUZzQks7RUFDSTs7QUFJUjtFRU1GO0VBakNDO0VGOEJLO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFLWjtFQUNJIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2N1c3RvbS1jb250YWluZXIvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnX19zZXR0aW5ncy9pbml0JztcclxuXHJcbi53cC1ibG9jay1jdXN0b20tY29udGFpbmVyIHtcclxuICAgIG1hcmdpbjogcmVtKDgwKSAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG4gICAgICAgIG1hcmdpbjogcmVtKDEyMCkgMDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICBtYXJnaW46IHJlbSgxNjApIDAgcmVtKDE2OCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tbGltaXRlZCB7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDEwMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1sZWZ0IHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxODgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDY4MCk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXh4bCcpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgcmVtKDExMCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PTE5MjBweCcpIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDE0NDApO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNDAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud3AtYmxvY2staGVhZGluZyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMxKTtcclxuXHJcbiAgICAgICAgJi5pcy1zdHlsZS1iYXNlLW5hcnJvdy1mb250IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgzOCwgMzgpO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDcuNCk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoNDIsIDQyKTtcclxuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oOC40KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5pcy1zdHlsZS1iYXNlLWZvbnQge1xyXG4gICAgICAgICAgICAmLmhhcy1tZWRpdW0tZm9udC1zaXplIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDMuNik7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG5cclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udCgxOCwgMzApO1xyXG5cclxuICAgICAgICAmICsgcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgICBAaW5jbHVkZSBmb250KDE4LCAzMCk7XHJcblxyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMSk7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0xNCk7XHJcblxyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGdhcDogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC53cC1ibG9jay1idXR0b25zIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNTEpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcbiJdfQ== *\/\n<\/style><div class=\"container\"><div class=\"container__body\">\n<h2 class=\"wp-block-heading is-style-base-narrow-font bounce bounce-up\">Our facilities<\/h2>\n\n\n\n<p class=\"bounce bounce-up wp-block-paragraph\">We value our long-term relationships and invest in state-of-the-art equipment to best serve our customers. We are an essential service provider, and our methods ensure outstanding laundry and linen services 7 days a week, 365 days a year. Our decades of experience and economies of scale enable us to optimize energy &amp; water use and maximize operational efficiencies to support cost savings for our customers. Planned, built-in, energy efficient equipment redundancies ensure year-round reliability through the most challenging times.<\/p>\n\n\n\n<p class=\"bounce bounce-up wp-block-paragraph\"><strong>All K\u2011Bro facilities include:<\/strong><\/p>\n\n\n<style>\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJ3ZWIvYXBwL3RoZW1lcy9rYnJvL3BhcnRzL2d1dGVuYmVyZy9jb3JlLWxpc3Qvc3R5bGUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIiXSwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2NvcmUtbGlzdC9zdHlsZS5jc3MifQ== *\/\n<\/style>\n<ul class=\"wp-block-list base-font-weight bounce bounce-up\">\n<li>Highly efficient, cost-reducing continuous batch washers (tunnel washers), automated dryers, and finishing equipment from world-class manufacturers. Planned, built-in equipment redundancy ensures year-round reliability through the most challenging times<\/li>\n\n\n\n<li>State-of-the-art computerized control systems overseeing the many factors that impact quality and cost<\/li>\n\n\n\n<li>Optimum use of space<\/li>\n\n\n\n<li>Automated systems and advanced energy conservation<\/li>\n\n\n\n<li>Sophisticated material handling systems that move linen through the facilities on space-saving overhead monorails and other conveyance systems that minimize labour costs and optimize ergonomics<\/li>\n\n\n\n<li>Specially constructed surgical linen pack rooms in each of our primary healthcare plants<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons bounce bounce-up is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-20959078 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-lines-horizontal\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https:\/\/www.k-brolinen.com\/contact\/\">CONTACT US<\/a><\/div>\n<\/div>\n<\/div><\/div><\/section>\n\n\n<section class=\"cta has-text-align-left\" data-link-position=\"default\" data-top-pattern=\"no\" data-gradient=\"no\">\r\n\t<style>.cta {\n  margin: 5.875rem 0 6.25rem;\n  position: relative;\n}\n@media (min-width: 1440px) {\n  .cta {\n    margin: 7.5rem 0 12.125rem;\n  }\n}\n.cta[data-link-position=absolute] .cta__content.bounce.bounce-left:not(.in-view) .wp-block-button.is-style-lines-horizontal-gradient-bottom:not(.block-editor-block-list__block), .cta[data-link-position=absolute] .cta__content.bounce.bounce-left:not(.in-view) .wp-block-button.is-style-lines-horizontal-gradient-top:not(.block-editor-block-list__block), .cta[data-link-position=absolute] .cta__content.bounce.bounce-right:not(.in-view) .wp-block-button.is-style-lines-horizontal-gradient-bottom:not(.block-editor-block-list__block), .cta[data-link-position=absolute] .cta__content.bounce.bounce-right:not(.in-view) .wp-block-button.is-style-lines-horizontal-gradient-top:not(.block-editor-block-list__block) {\n  opacity: 0;\n}\n.cta[data-link-position=absolute] .cta__content.bounce.bounce-left.in-view .wp-block-button.is-style-lines-horizontal-gradient-bottom, .cta[data-link-position=absolute] .cta__content.bounce.bounce-left.in-view .wp-block-button.is-style-lines-horizontal-gradient-top, .cta[data-link-position=absolute] .cta__content.bounce.bounce-right.in-view .wp-block-button.is-style-lines-horizontal-gradient-bottom, .cta[data-link-position=absolute] .cta__content.bounce.bounce-right.in-view .wp-block-button.is-style-lines-horizontal-gradient-top {\n  opacity: 1;\n}\n.cta[data-link-position=absolute] .cta__content .wp-block-button {\n  position: absolute;\n  z-index: 1;\n  transition: opacity var(--transition-speed) var(--transition-timing-function) 0.8s;\n}\n@media (min-width: 1200px) {\n  .cta[data-link-position=absolute] .cta__content .wp-block-button {\n    left: 50%;\n    bottom: 0.875rem;\n    transform: translateX(-50%);\n  }\n}\n@media (max-width: 1199px) {\n  .cta[data-link-position=absolute] .cta__content--image-side-right .wp-block-button {\n    top: calc(50% - 6px);\n    right: 4.25rem;\n    transform: translateY(-50%);\n  }\n}\n@media (max-width: 767px) {\n  .cta[data-link-position=absolute] .cta__content--image-side-right .wp-block-button {\n    left: 50%;\n    bottom: 12.8125rem;\n    right: auto;\n    top: auto;\n    transform: translateX(-50%);\n  }\n}\n@media (max-width: 1199px) {\n  .cta[data-link-position=absolute] .cta__content--image-side-default .wp-block-button {\n    top: calc(50% - 6px);\n    left: 4.25rem;\n    transform: translateY(-50%);\n  }\n}\n@media (max-width: 767px) {\n  .cta[data-link-position=absolute] .cta__content--image-side-default .wp-block-button {\n    left: 50%;\n    bottom: 12.8125rem;\n    right: auto;\n    top: auto;\n    transform: translateX(-50%);\n  }\n}\n.cta[data-top-pattern=yes] {\n  margin-top: 10rem;\n}\n@media (min-width: 768px) {\n  .cta[data-top-pattern=yes] {\n    margin-top: 18.0625rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta[data-top-pattern=yes] {\n    margin-top: 25rem;\n  }\n}\n@media (min-width: 2200px) {\n  .cta[data-top-pattern=yes] {\n    margin-top: 10rem;\n  }\n}\n.cta .cta__pattern {\n  position: absolute;\n  left: 0;\n  top: -8rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__pattern {\n    top: -10.75rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__pattern {\n    top: -14.625rem;\n  }\n}\n.cta .cta__inner {\n  display: flex;\n  flex-direction: column-reverse;\n  gap: 1.5625rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__inner {\n    flex-direction: row;\n    gap: 2.8125rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta .cta__inner {\n    gap: 7.5rem;\n    margin-left: 6.875rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__inner--gap-65 {\n    gap: 4.0625rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta .cta__inner--gap-120 {\n    gap: 7.5rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta .cta__inner--image-side-right {\n    flex-direction: row-reverse;\n  }\n}\n@media (min-width: 768px) {\n  .cta .cta__inner--content-alignment-right {\n    margin-right: -4.375rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta .cta__inner--content-alignment-left {\n    margin-left: -4.375rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta .cta__inner--content-alignment-left {\n    margin-right: 5rem;\n  }\n}\n@media (min-width: 768px) and (max-width: 1199px) {\n  .cta .cta__inner--content-alignment-center.cta__inner--image-side-default {\n    margin-left: -4.375rem;\n  }\n}\n@media (min-width: 768px) and (max-width: 1199px) {\n  .cta .cta__inner--content-alignment-center.cta__inner--image-side-right {\n    margin-right: -4.375rem;\n  }\n}\n.cta .cta__image {\n  width: calc(100% + 52px);\n  height: 18.375rem;\n  margin: 0rem -1.625rem;\n  z-index: 1;\n  overflow: hidden;\n}\n@media (min-width: 768px) {\n  .cta .cta__image {\n    width: 26.0625rem;\n    min-width: 26.0625rem;\n    height: 31.3125rem;\n    margin: 0rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta .cta__image {\n    width: 33.125rem;\n    min-width: 33.125rem;\n    height: 25rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta .cta__image--width-720 {\n    width: 26rem;\n    min-width: 26rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__image--width-720 {\n    width: 45rem;\n    min-width: 45rem;\n  }\n}\n.cta .cta__image--height-809 {\n  height: 27.375rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__image--height-809 {\n    height: 50.5625rem;\n  }\n}\n.cta .cta__image--height-900 {\n  height: 27.375rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__image--height-900 {\n    height: 56.25rem;\n  }\n}\n.cta .cta__image--height-592 {\n  height: 20.0625rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__image--height-592 {\n    height: 37rem;\n  }\n}\n.cta .cta__image__wrapper {\n  position: relative;\n  margin: 0rem -1.625rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__image__wrapper {\n    margin: 0rem;\n  }\n}\n.cta .cta__image img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: top;\n}\n.cta .cta__gradients {\n  position: absolute;\n  bottom: 0rem;\n  right: 0rem;\n  pointer-events: none;\n}\n@media (max-width: 767px) {\n  .cta .cta__gradients {\n    width: 100%;\n  }\n}\n.cta .cta__gradient {\n  position: absolute;\n  max-width: unset !important;\n}\n.cta .cta__gradient--over {\n  position: absolute;\n  right: -12.1875rem;\n  top: -21.75rem;\n  z-index: 1;\n  width: 36.25rem !important;\n  height: 36rem !important;\n}\n@media (min-width: 768px) {\n  .cta .cta__gradient--over {\n    right: -12.0625rem;\n    top: -25.5rem;\n    width: 28.5rem !important;\n    height: 44.375rem !important;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__gradient--over {\n    top: -42.5rem;\n    right: -29.375rem;\n    width: 66.4375rem !important;\n    height: 76.9375rem !important;\n  }\n}\n.cta .cta__gradient--under {\n  position: absolute;\n  right: -5rem;\n  top: -11.3125rem;\n  z-index: -1;\n  width: 31.875rem !important;\n  height: 24.1875rem !important;\n}\n@media (min-width: 768px) {\n  .cta .cta__gradient--under {\n    right: 0rem;\n    top: -12.3125rem;\n    width: 39.375rem !important;\n    height: 29.8125rem !important;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__gradient--under {\n    top: -20.3125rem;\n    width: 68.25rem !important;\n    height: 54.75rem !important;\n  }\n}\n.cta .cta__content .acf-innerblocks-container {\n  padding: 3.125rem 0;\n}\n.cta .cta__content .acf-innerblocks-container .wp-block-heading {\n  font-size: 3rem;\n  line-height: 1;\n  word-break: auto-phrase;\n  overflow-wrap: break-word;\n  -webkit-hyphens: auto;\n  -moz-hyphens: auto;\n  hyphens: auto;\n}\n.cta .cta__content .acf-innerblocks-container .wp-block-heading:first-of-type + p:not(.is-style-subheading) {\n  margin-top: 2.625rem;\n}\n.cta .cta__content .acf-innerblocks-container .wp-block-heading.is-style-base-narrow-font {\n  font-size: 2.625rem;\n  line-height: 1;\n  letter-spacing: 0.525rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__content .acf-innerblocks-container .wp-block-heading.is-style-base-narrow-font {\n    margin-top: 1.875rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta .cta__content .acf-innerblocks-container .wp-block-heading.is-style-base-narrow-font {\n    margin-top: 3.1875rem;\n  }\n}\n.cta .cta__content .acf-innerblocks-container .wp-block-heading.is-style-base-narrow-font.h4 {\n  font-size: 1.125rem;\n  line-height: 1.2222222222;\n  letter-spacing: 0.3rem;\n  font-weight: 900;\n  margin-top: 1.6875rem;\n}\n.cta .cta__content .acf-innerblocks-container .is-style-subheading {\n  margin-bottom: 2.125rem;\n}\n.cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) {\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n}\n.cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-lines-horizontal {\n  margin-top: 2.4375rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-lines-horizontal {\n    margin-top: 4.4375rem;\n  }\n}\n.cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-arrow-right, .cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-arrow-right-wider {\n  margin-top: 2.4375rem;\n}\n@media (min-width: 768px) {\n  .cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-arrow-right, .cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading) + .is-style-arrow-right-wider {\n    margin-top: 2.25rem;\n  }\n}\n.cta .cta__content .acf-innerblocks-container p:not(.is-style-subheading, :last-of-type) {\n  margin-bottom: 1.25rem;\n}\n.cta .cta__content .acf-innerblocks-container .wp-block-button:not(.is-style-lines-horizontal-gradient-top, .is-style-lines-horizontal-gradient-bottom):last-child {\n  margin-bottom: 1.5625rem;\n}\n@media (max-width: 991px) {\n  .cta .cta__content .acf-innerblocks-container .wp-block-spacer {\n    display: none;\n  }\n}\n@media (max-width: 767px) {\n  .cta .cta__content .acf-innerblocks-container .is-style-leadparagraph:last-child {\n    margin-bottom: 1.25rem;\n  }\n}\n@media (max-width: 767px) {\n  .cta .cta__content .acf-innerblocks-container .is-style-leadparagraph + p:not([class]) {\n    margin-bottom: 1.25rem;\n  }\n}\n.cta .cta__link {\n  margin-top: 5rem;\n}\n\n@media (max-width: 767px) {\n  .countries + .cta {\n    margin-top: 4.625rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .logos + .cta:not([data-top-pattern=yes]) {\n    margin-top: 13.5rem;\n  }\n}\n\n.list + .cta {\n  margin-top: -0.4375rem;\n}\n\n.cta[data-gradient=yes] + .cta {\n  margin-top: 10.625rem;\n}\n@media (min-width: 768px) {\n  .cta[data-gradient=yes] + .cta {\n    margin-top: 21.5rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta[data-gradient=yes] + .cta {\n    margin-top: 27.5rem;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1jdGEvc3R5bGUuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8tcHJvZC9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby1wcm9kL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUdDO0VBRUE7O0FDd2lCQztFRDdpQkY7SUFRRTs7O0FBUUk7RUFDQzs7QUFLRDtFQUNDOztBQUtIO0VBQ0M7RUFDQTtFQUVBOztBQzZnQkg7RURqaEJFO0lBT0U7SUFDQTtJQUVBOzs7QUN1Z0JKO0VEaGdCSztJQUVFO0lBQ0E7SUFFQTs7O0FDMmZQO0VEaGdCSztJQVNFO0lBQ0E7SUFDQTtJQUNBO0lBRUE7OztBQ2tmUDtFRDVlSztJQUVFO0lBQ0E7SUFFQTs7O0FDdWVQO0VENWVLO0lBU0U7SUFDQTtJQUNBO0lBQ0E7SUFFQTs7O0FBVVI7RUFDQzs7QUNtZEE7RURwZEQ7SUFJRTs7O0FDZ2REO0VEcGREO0lBUUU7OztBQzRjRDtFRHBkRDtJQVlFOzs7QUFLRDtFQUNDO0VBQ0E7RUFDQTs7QUNnY0Q7RURuY0E7SUFNRTs7O0FDNmJGO0VEbmNBO0lBVUU7OztBQUdGO0VBQ0M7RUFDQTtFQUNBOztBQ21iRDtFRHRiQTtJQU1FO0lBQ0E7OztBQythRjtFRHRiQTtJQVdFO0lBRUE7OztBQ3lhRjtFRHJhRTtJQUVFOzs7QUNtYUo7RUQvWkU7SUFFRTs7O0FDNlpKO0VEdFpHO0lBRUU7OztBQ29aTDtFRDdZRTtJQUVFOzs7QUMyWUo7RUR2WUU7SUFFRTs7O0FDcVlKO0VEdllFO0lBTUU7OztBQ2lZSjtFRDVYRztJQUVFOzs7QUMwWEw7RUR0WEc7SUFFRTs7O0FBT0w7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUVBOztBQ3NXRDtFRDdXQTtJQVVFO0lBQ0E7SUFDQTtJQUNBOzs7QUNnV0Y7RUQ3V0E7SUFpQkU7SUFDQTtJQUNBOzs7QUMwVkY7RUR0VkU7SUFFRTtJQUNBOzs7QUNtVko7RUR0VkU7SUFPRTtJQUNBOzs7QUFNRjtFQUNDOztBQ3VVSDtFRHhVRTtJQUlFOzs7QUFJRjtFQUNDOztBQytUSDtFRGhVRTtJQUdFOzs7QUFJRjtFQUNDOztBQ3dUSDtFRHpURTtJQUlFOzs7QUFLSDtFQUNDO0VBRUE7O0FDNlNGO0VEaFRDO0lBTUU7OztBQUlGO0VBQ0M7RUFDQTtFQUVBO0VBQ0E7O0FBSUY7RUFDQztFQUNBO0VBQ0E7RUFFQTs7QUN3UkQ7RUQ3UkE7SUFRRTs7O0FBSUY7RUFDQztFQUVBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQ3FRRjtFRDVRQztJQVVFO0lBQ0E7SUFFQTtJQUNBOzs7QUM4UEg7RUQ1UUM7SUFrQkU7SUFDQTtJQUVBO0lBQ0E7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQzJPRjtFRGxQQztJQVVFO0lBQ0E7SUFFQTtJQUNBOzs7QUNvT0g7RURsUEM7SUFrQkU7SUFFQTtJQUNBOzs7QUFNRjtFQUNDOztBQUNBO0VFeFFGO0VBakNDO0VGMlNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0M7RUFDQzs7QUFJRjtFRXRSSDtFQWpDQztFRnlURzs7QUNxTUo7RUR2TUc7SUFLRTs7O0FDa01MO0VEdk1HO0lBU0U7OztBQUdEO0VFbFNKO0VBakNDO0VGcVVJO0VBQ0c7RUFFSDs7QUFLSDtFQUNDOztBQUdEO0VFaFRGO0VBakNDOztBRm9WRTtFQUNDOztBQ3lLSjtFRDFLRztJQUlFOzs7QUFJRjtFQUNDOztBQ2lLSjtFRGxLRztJQUlFOzs7QUFLSDtFQUNDOztBQUlBO0VBQ0M7O0FDbUpKO0VEL0lFO0lBRUU7OztBQzZJSjtFRHpJRTtJQUVFOzs7QUN1SUo7RURuSUU7SUFFRTs7O0FBTUo7RUFDQzs7O0FDMEhEO0VEckhGO0lBRUU7Ozs7QUNtSEE7RUQvR0Y7SUFFRTs7OztBQUlGO0VBQ0M7OztBQUdEO0VBQ0M7O0FDb0dDO0VEckdGO0lBSUU7OztBQ2lHQTtFRHJHRjtJQVFFIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1jdGEvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnX19zZXR0aW5ncy9pbml0JztcclxuXHJcbi5jdGEge1xyXG4gICAgJGJsb2NrOiAmO1xyXG5cclxuXHRtYXJnaW46IHJlbSg5NCkgMCByZW0oMTAwKTtcclxuXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj14eGwnKSB7XHJcblx0XHRtYXJnaW46IHJlbSgxMjApIDAgcmVtKDE5NCk7XHJcblx0fVxyXG5cclxuXHQmW2RhdGEtbGluay1wb3NpdGlvbj1cImFic29sdXRlXCJdIHtcclxuXHRcdC5jdGEge1xyXG5cdFx0XHQmX19jb250ZW50IHtcclxuXHRcdFx0XHQmLmJvdW5jZS5ib3VuY2UtbGVmdCwgJi5ib3VuY2UuYm91bmNlLXJpZ2h0IHtcclxuXHRcdFx0XHRcdCY6bm90KC5pbi12aWV3KSB7XHJcblx0XHRcdFx0XHRcdC53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC1ib3R0b206bm90KC5ibG9jay1lZGl0b3ItYmxvY2stbGlzdF9fYmxvY2spLCAud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLWxpbmVzLWhvcml6b250YWwtZ3JhZGllbnQtdG9wOm5vdCguYmxvY2stZWRpdG9yLWJsb2NrLWxpc3RfX2Jsb2NrKSB7XHJcblx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCYuaW4tdmlldyB7XHJcblx0XHRcdFx0XHRcdC53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC1ib3R0b20sIC53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC10b3Age1xyXG5cdFx0XHRcdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC53cC1ibG9jay1idXR0b24ge1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDogMTtcclxuXHJcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy1zcGVlZCAkdHJhbnMtZnVuYyAwLjhzO1xyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdFx0XHRcdGJvdHRvbTogcmVtKDE0KTtcclxuXHJcblx0XHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtLWltYWdlIHtcclxuXHRcdFx0XHRcdCYtc2lkZSB7XHJcblx0XHRcdFx0XHRcdCYtcmlnaHQge1xyXG5cdFx0XHRcdFx0XHRcdC53cC1ibG9jay1idXR0b24ge1xyXG5cdFx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9MTE5OXB4Jykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0b3A6IGNhbGMoNTAlIC0gNnB4KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmlnaHQ6IHJlbSg2OCk7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9NzY3cHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ym90dG9tOiByZW0oMjA1KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmlnaHQ6IGF1dG87XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRvcDogYXV0bztcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdCYtZGVmYXVsdCB7XHJcblx0XHRcdFx0XHRcdFx0LndwLWJsb2NrLWJ1dHRvbiB7XHJcblx0XHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPD0xMTk5cHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRvcDogY2FsYyg1MCUgLSA2cHgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZWZ0OiByZW0oNjgpO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc8PTc2N3B4Jykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGJvdHRvbTogcmVtKDIwNSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJpZ2h0OiBhdXRvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0b3A6IGF1dG87XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmW2RhdGEtdG9wLXBhdHRlcm49XCJ5ZXNcIl0ge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDE2MCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IHJlbSgyODkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oNDAwKTtcclxuXHRcdH1cclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj0yMjAwcHgnKSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IHJlbSgxNjApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I3skYmxvY2t9IHtcclxuXHRcdCZfX3BhdHRlcm4ge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHRvcDogcmVtKC0xMjgpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0dG9wOiByZW0oLTE3Mik7XHJcblx0XHRcdH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdHRvcDogcmVtKC0yMzQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmX19pbm5lciB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuXHRcdFx0Z2FwOiByZW0oMjUpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdFx0XHRnYXA6IHJlbSg0NSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXh4bCcpIHtcclxuXHRcdFx0XHRnYXA6IHJlbSgxMjApO1xyXG5cclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogcmVtKDExMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLWdhcCB7XHJcblx0XHRcdFx0Ji02NSB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdFx0Z2FwOiByZW0oNjUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji0xMjAge1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdFx0XHRnYXA6IHJlbSgxMjApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0taW1hZ2Uge1xyXG5cdFx0XHRcdCYtc2lkZSB7XHJcblx0XHRcdFx0XHQmLXJpZ2h0IHtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1jb250ZW50LWFsaWdubWVudCB7XHJcblx0XHRcdFx0Ji1yaWdodCB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0oLTcwKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtbGVmdCB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgtNzApO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXh4bCcpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0oODApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji1jZW50ZXIge1xyXG5cdFx0XHRcdFx0Ji5jdGFfX2lubmVyLS1pbWFnZS1zaWRlLWRlZmF1bHQge1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcsJzw9MTE5OXB4Jykge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0oLTcwKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCYuY3RhX19pbm5lci0taW1hZ2Utc2lkZS1yaWdodCB7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJywnPD0xMTk5cHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0oLTcwKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2ltYWdlIHtcclxuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSArIDUycHgpO1xyXG5cdFx0XHRoZWlnaHQ6IHJlbSgyOTQpO1xyXG5cdFx0XHRtYXJnaW46IHJlbSgwKSByZW0oLTI2KTtcclxuXHJcblx0XHRcdHotaW5kZXg6IDE7XHJcblxyXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0d2lkdGg6IHJlbSg0MTcpO1xyXG5cdFx0XHRcdG1pbi13aWR0aDogcmVtKDQxNyk7XHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oNTAxKTtcclxuXHRcdFx0XHRtYXJnaW46IHJlbSgwKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oNTMwKTtcclxuXHRcdFx0XHRtaW4td2lkdGg6IHJlbSg1MzApO1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDQwMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXdpZHRoIHtcclxuXHRcdFx0XHQmLTcyMCB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IHJlbSg0MTYpO1xyXG5cdFx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSg0MTYpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtKDcyMCk7XHJcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDcyMCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1oZWlnaHQge1xyXG5cdFx0XHRcdCYtODA5IHtcclxuXHRcdFx0XHRcdGhlaWdodDogcmVtKDQzOCk7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDgwOSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLTkwMHtcclxuXHRcdFx0XHRcdGhlaWdodDogcmVtKDQzOCk7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0oOTAwKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtNTkyIHtcclxuXHRcdFx0XHRcdGhlaWdodDogcmVtKDMyMSk7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDU5Mik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmX193cmFwcGVyIHtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHRcdG1hcmdpbjogcmVtKDApIHJlbSgtMjYpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdG1hcmdpbjogcmVtKDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdFx0XHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogdG9wO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fZ3JhZGllbnRzIHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRib3R0b206IHJlbSgwKTtcclxuXHRcdFx0cmlnaHQ6IHJlbSgwKTtcclxuXHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9NzY3cHgnKSB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19ncmFkaWVudCB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblx0XHRcdG1heC13aWR0aDogdW5zZXQgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdCYtLW92ZXIge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRyaWdodDogcmVtKC0xOTUpO1xyXG5cdFx0XHRcdHRvcDogcmVtKC0zNDgpO1xyXG5cdFx0XHRcdHotaW5kZXg6IDE7XHJcblxyXG5cdFx0XHRcdHdpZHRoOiByZW0oNTgwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDU3NikgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRyaWdodDogcmVtKC0xOTMpO1xyXG5cdFx0XHRcdFx0dG9wOiByZW0oLTQwOCk7XHJcblxyXG5cdFx0XHRcdFx0d2lkdGg6IHJlbSg0NTYpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbSg3MTApICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdHRvcDogcmVtKC02ODApO1xyXG5cdFx0XHRcdFx0cmlnaHQ6IHJlbSgtNDcwKTtcclxuXHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDEwNjMpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgxMjMxKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0tdW5kZXIge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRyaWdodDogcmVtKC04MCk7XHJcblx0XHRcdFx0dG9wOiByZW0oLTE4MSk7XHJcblx0XHRcdFx0ei1pbmRleDogLTE7XHJcblxyXG5cdFx0XHRcdHdpZHRoOiByZW0oNTEwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDM4NykgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRyaWdodDogcmVtKDApO1xyXG5cdFx0XHRcdFx0dG9wOiByZW0oLTE5Nyk7XHJcblxyXG5cdFx0XHRcdFx0d2lkdGg6IHJlbSg2MzApICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbSg0NzcpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdHRvcDogcmVtKC0zMjUpO1xyXG5cclxuXHRcdFx0XHRcdHdpZHRoOiByZW0oMTA5MikgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdGhlaWdodDogcmVtKDg3NikgIWltcG9ydGFudDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jb250ZW50IHtcclxuXHRcdFx0LmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG5cdFx0XHRcdHBhZGRpbmc6IHJlbSg1MCkgMDtcclxuXHRcdFx0XHQud3AtYmxvY2staGVhZGluZyB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBmb250KDQ4LCA0OCk7XHJcblx0XHRcdFx0XHR3b3JkLWJyZWFrOiBhdXRvLXBocmFzZTtcclxuXHRcdFx0XHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcblx0XHRcdFx0XHQtd2Via2l0LWh5cGhlbnM6IGF1dG87XHJcblx0XHRcdFx0XHQtbW96LWh5cGhlbnM6IGF1dG87XHJcblx0XHRcdFx0XHRoeXBoZW5zOiBhdXRvO1xyXG5cclxuXHRcdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0XHRcdCYgKyBwOm5vdCguaXMtc3R5bGUtc3ViaGVhZGluZykge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IHJlbSg0Mik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmLmlzLXN0eWxlLWJhc2UtbmFycm93LWZvbnQge1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250KDQyLCA0Mik7XHJcblx0XHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oOC40KTtcclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IHJlbSgzMCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IHJlbSg1MSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdCYuaDQge1xyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMTgsIDIyKTtcclxuXHRcdFx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKDQuOCk7XHJcbiAgICBcdFx0XHRcdFx0XHRmb250LXdlaWdodDogOTAwO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMjcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuaXMtc3R5bGUtc3ViaGVhZGluZyB7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMzQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cDpub3QoLmlzLXN0eWxlLXN1YmhlYWRpbmcpIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMTgsIDMwKTtcclxuXHJcblx0XHRcdFx0XHQmICsgLmlzLXN0eWxlLWxpbmVzLWhvcml6b250YWwge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMzkpO1xyXG5cclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKDcxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCYgKyAuaXMtc3R5bGUtYXJyb3ctcmlnaHQsICYgKyAuaXMtc3R5bGUtYXJyb3ctcmlnaHQtd2lkZXIge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMzkpO1xyXG5cclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKDM2KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cDpub3QoLmlzLXN0eWxlLXN1YmhlYWRpbmcsIDpsYXN0LW9mLXR5cGUpIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQud3AtYmxvY2stYnV0dG9uOm5vdCguaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC10b3AsIC5pcy1zdHlsZS1saW5lcy1ob3Jpem9udGFsLWdyYWRpZW50LWJvdHRvbSkge1xyXG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI1KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC53cC1ibG9jay1zcGFjZXIge1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9OTkxcHgnKSB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuaXMtc3R5bGUtbGVhZHBhcmFncmFwaDpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc8PTc2N3B4Jykge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LmlzLXN0eWxlLWxlYWRwYXJhZ3JhcGggKyBwOm5vdChbY2xhc3NdKSB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPD03NjdweCcpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19saW5rIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDgwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jb3VudHJpZXMgKyAuY3RhIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPD03NjdweCcpIHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSg3NCk7XHJcblx0fVxyXG59XHJcblxyXG4ubG9nb3MgKyAuY3RhOm5vdChbZGF0YS10b3AtcGF0dGVybj1cInllc1wiXSkge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDIxNik7XHJcblx0fVxyXG59XHJcblxyXG4ubGlzdCArIC5jdGEge1xyXG5cdG1hcmdpbi10b3A6IHJlbSgtNyk7XHJcbn1cclxuXHJcbi5jdGFbZGF0YS1ncmFkaWVudD1cInllc1wiXSArIC5jdGEge1xyXG5cdG1hcmdpbi10b3A6IHJlbSgxNzApO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSgzNDQpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oNDQwKTtcclxuXHR9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuXHQncGhvbmUnOiAzMjBweCxcblx0J3RhYmxldCc6IDc2OHB4LFxuXHQnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXG5cdCdwcmludCc6ICdwcmludCcsXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcblx0J3B4JzogMSxcblx0J2VtJzogMC4wMSxcblx0J3JlbSc6IDAuMSxcblx0Jyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XG5cdH0gQGVsc2Uge1xuXHRcdEB3YXJuICRtZXNzYWdlO1xuXHRcdCRfOiBub29wKCk7XG5cdH1cblxuXHRAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG5cdH1cblxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3Jcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcblx0XHR9XG5cdH1cblxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcblxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcblx0fVxuXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcblx0fSBAZWxzZSB7XG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcblx0fVxuXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcblx0fVxuXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcblx0fVxuXG5cdEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3Jcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG5cdH1cblxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcblx0XHRAcmV0dXJuICgpO1xuXHR9XG5cblx0JHJlc3VsdDogKCk7XG5cblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG5cdH1cblxuXHRAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdFx0QHJldHVybiAkdmFsdWU7XG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuXHR9XG5cblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG5cdCRyZXN1bHQ6IDA7XG5cdCRkaWdpdHM6IDA7XG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcblx0fVxuXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0XHR9XG5cblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuXHRcdFx0JGRpZ2l0czogMTtcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuXHR9XG5cblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG5cdEBjb250ZW50O1xuXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3Jcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvL1xuLy8gTUlYSU5TXG4vL1xuQG1peGluIGNmIHtcblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcblx0QHJldHVybiAoJHMgLyAkdykgKiAxMDAgKyB2dztcbn1cblxuQGZ1bmN0aW9uIHJlbSgkc2l6ZVZhbHVlOiAxNikge1xuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcbn1cblxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcbn1cblxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XG5cdEByZXR1cm4gcmVsKCRzaXplLCAkcmVsKSAqIDFlbTtcbn1cblxuQG1peGluIG9iamVjdC1maXQtY292ZXIoKSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cblx0b2JqZWN0LWZpdDogY292ZXI7XG59XG5cbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcblx0QGlmICRsaW5lLWhlaWdodCAhPSAwIHtcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblx0XHR9XG5cdFx0QGVsc2Uge1xuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XG5cdFx0fVxuXHR9XG59XG5cbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcblx0XHRAaWYgJGxldHRlci1zcGFjaW5nIDwgMTAge1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xuXHRcdH1cblx0XHRAZWxzZSB7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gZm9udCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0OiAwLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XG5cdFx0XHRAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsaW5lLWhlaWdodCk7XG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XG5cdFx0XHR9XG5cdFx0XHRAZWxzZSB7XG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRAZWxzZSB7XG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xuXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XG5cdH1cbn1cbiJdfQ== *\/\n<\/style>\t\t<div class=\"container\">\r\n\t\t<div class=\"cta__inner cta__inner--gap-120 cta__inner--image-side-right cta__inner--content-alignment-right\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cta__image__wrapper bounce bounce-right\">\r\n\t\t\t\t<div class=\"cta__image cta__image--width-720 cta__image--height-809 cta__image--gradient-no\">\r\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"809\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-600x809.png\" class=\"attachment-cta-img size-cta-img\" alt=\"Smiley K-Bro female staff member in the plant\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-600x809.png 600w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-222x300.png 222w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-768x1036.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-759x1024.png 759w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-282x380.png 282w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-33x45.png 33w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-311x420.png 311w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-548x739.png 548w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-234x315.png 234w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-615x830.png 615w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-294x396.png 294w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-190x256.png 190w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2-261x352.png 261w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-info-2.png 900w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"cta__content cta__content--image-side-right bounce bounce-left\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<h2 class=\"wp-block-heading\">Sustainability<br>We&#8217;re Making a Difference<\/h2>\n\n\n\n<p class=\"is-style-leadparagraph has-secondary-color has-text-color has-link-color wp-elements-00f945f5d7c2fc5bcb7fb31bd2af97ed wp-block-paragraph\">At K-Bro, we&#8217;re proud of our seven-decade history of delivering industry-leading service, sustainability and positive impacts where we do business. We are taking action to support a sustainable future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Putting people first, being dependable partners and embracing environmental stewardship have always been part of our culture. K-Bro\u2019s circular business model keeps high-quality products in use for longer, while reducing natural resource consumption, and offers sustainable alternatives to single-use or disposable products. K-Bro invests in highly energy-efficient technology from world-class manufacturers to reduce water and energy consumption supporting sustainable cost efficient solutions for our customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading h4 is-style-base-narrow-font has-secondary-color has-text-color has-link-color wp-elements-e9992ac9f9f1513039621cead030a899\">We&#8217;re making a difference.<\/h2>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<style>.wp-block-buttons {\n  margin: 2.5rem auto;\n}\n.wp-block-buttons.aligncenter {\n  justify-content: center;\n}\n\n.wp-block-button__link {\n  color: #FFF;\n  background: var(--wp--preset--color--primary);\n  display: inline-block;\n}\n.wp-block-button__link:hover, .wp-block-button__link:focus {\n  color: #FFF;\n}\n.wp-block-button.is-style-outline .wp-block-button__link {\n  min-width: 9rem;\n  padding: 0.40625rem 0.625rem;\n  border-radius: 0;\n  border: 0.1875rem solid var(--wp--preset--color--primary);\n  background-color: transparent;\n  font-size: 1rem;\n  line-height: 1.375;\n  letter-spacing: 0.1rem;\n  font-weight: 700;\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  text-transform: uppercase;\n  color: currentColor;\n  transition: background-color var(--transition-speed) var(--transition-timing-function), color var(--transition-speed) var(--transition-timing-function);\n}\n.wp-block-button.is-style-outline .wp-block-button__link:hover {\n  background-color: var(--wp--preset--color--primary);\n  color: var(--wp--preset--color--light);\n}\n.wp-block-button.is-style-lines-horizontal, .wp-block-button.is-style-lines-horizontal-gradient-top, .wp-block-button.is-style-lines-horizontal-gradient-bottom {\n  text-align: center;\n}\n.wp-block-button.is-style-lines-horizontal .wp-block-button__link, .wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link {\n  padding: 0.6875rem 0;\n  background-color: transparent;\n  position: relative;\n  font-size: 1rem;\n  line-height: 1.275;\n  letter-spacing: 0.1rem;\n  font-weight: 800;\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  color: var(--wp--preset--color--dark);\n  text-transform: uppercase;\n}\n.wp-block-button.is-style-lines-horizontal .wp-block-button__link:hover::before, .wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link:hover::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link:hover::before {\n  left: calc(50% - 16px);\n}\n.wp-block-button.is-style-lines-horizontal .wp-block-button__link:hover::after, .wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link:hover::after, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link:hover::after {\n  left: calc(50% + 16px);\n}\n.wp-block-button.is-style-lines-horizontal .wp-block-button__link::before, .wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 8.125rem;\n  height: 0.1875rem;\n  background-color: var(--wp--preset--color--primary);\n  transition: left var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-lines-horizontal .wp-block-button__link::after, .wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link::after, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 8.125rem;\n  height: 0.1875rem;\n  background-color: var(--wp--preset--color--primary);\n  transition: left var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top, .wp-block-button.is-style-lines-horizontal-gradient-bottom {\n  position: relative;\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%);\n  pointer-events: none;\n  width: 20.5rem;\n  height: 20.5rem;\n  background-size: 20.5rem 20.5rem;\n}\n@media (min-width: 768px) {\n  .wp-block-button.is-style-lines-horizontal-gradient-top::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom::before {\n    width: 21.9375rem;\n    height: 21.9375rem;\n    background-size: 21.9375rem 21.9375rem;\n  }\n}\n@media (min-width: 1440px) {\n  .wp-block-button.is-style-lines-horizontal-gradient-top::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom::before {\n    width: 27.0625rem;\n    height: 27.0625rem;\n    background-size: 27.0625rem 27.0625rem;\n  }\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link {\n  color: var(--wp--preset--color--light);\n  white-space: nowrap;\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link::before, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link::before {\n  background-color: var(--wp--preset--color--dark);\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top .wp-block-button__link::after, .wp-block-button.is-style-lines-horizontal-gradient-bottom .wp-block-button__link::after {\n  background-color: var(--wp--preset--color--dark);\n}\n.wp-block-button.is-style-lines-horizontal-gradient-top::before {\n  background-image: url(https:\/\/www.k-brolinen.com\/wp-content\/themes\/kbro\/assets\/images\/circle-gradient-top.png);\n}\n.wp-block-button.is-style-lines-horizontal-gradient-bottom::before {\n  background-image: url(https:\/\/www.k-brolinen.com\/wp-content\/themes\/kbro\/assets\/images\/circle-gradient-bottom.png);\n}\n.wp-block-button.is-style-arrow-right, .wp-block-button.is-style-arrow-right-wider {\n  display: inline-block;\n  position: relative;\n  left: 50%;\n  z-index: 1;\n  transform: translateX(-50%);\n  font-size: 0;\n  min-width: 14rem;\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link {\n  display: inline-block;\n  padding: 0.5rem 0.625rem;\n  width: 100%;\n  background-color: var(--wp--preset--color--light);\n  border: 0.1875rem solid var(--wp--preset--color--primary);\n  border-radius: 0;\n  font-size: 1rem;\n  line-height: 1.275;\n  letter-spacing: 0.1rem;\n  font-weight: 800;\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  text-transform: uppercase;\n  color: var(--wp--preset--color--secondary);\n  transition: background-color var(--transition-speed-longer) var(--transition-timing-function), color var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link:hover, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link:hover {\n  background-color: var(--wp--preset--color--primary);\n  color: var(--wp--preset--color--light);\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link:hover::before, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link:hover::before {\n  transform: translateX(8px);\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link:hover::after, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link:hover::after {\n  transform: translateX(8px);\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link::before, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: calc(50% - 1.5px);\n  left: -1.8125rem;\n  right: -1.5625rem;\n  z-index: -1;\n  height: 0.1875rem;\n  background-color: var(--wp--preset--color--dark);\n  transition: transform var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-arrow-right .wp-block-button__link::after, .wp-block-button.is-style-arrow-right-wider .wp-block-button__link::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  bottom: calc(50% - 12.5px);\n  right: -1.6875rem;\n  width: 0.875rem;\n  height: 1.5rem;\n  background-image: url(\"data:image\/svg+xml,%3Csvg width='14' height='24' viewBox='0 0 14 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Crect x='0.03125' y='21.2812' width='16.5286' height='3' transform='rotate(-45 0.03125 21.2812)' fill='black'\/%3E%3Crect x='11.6948' y='13.8164' width='16.5389' height='3' transform='rotate(-135 11.6948 13.8164)' fill='black'\/%3E%3C\/svg%3E%0A\");\n  transition: transform var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-arrow-right-wider .wp-block-button__link {\n  padding: 0.5rem 1.90625rem;\n}\n.wp-block-button.is-style-arrow-left {\n  display: inline-block;\n  position: relative;\n  z-index: 1;\n  font-size: 0;\n  min-width: 14rem;\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link {\n  padding: 0.5rem 0.625rem;\n  width: 100%;\n  background-color: var(--wp--preset--color--light);\n  border: 0.1875rem solid var(--wp--preset--color--primary);\n  border-radius: 0;\n  font-size: 1rem;\n  line-height: 1.275;\n  letter-spacing: 0.1rem;\n  font-weight: 800;\n  font-family: var(--wp--preset--font-family--base-font), sans-serif;\n  text-transform: uppercase;\n  color: var(--wp--preset--color--secondary);\n  transition: background-color var(--transition-speed-longer) var(--transition-timing-function), color var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link:hover {\n  background-color: var(--wp--preset--color--primary);\n  color: var(--wp--preset--color--light);\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link:hover::before {\n  transform: translateX(-8px);\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link:hover::after {\n  transform: translateX(-8px) rotate(180deg);\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: calc(50% - 1.5px);\n  left: -1.8125rem;\n  right: -1.5625rem;\n  z-index: -1;\n  height: 0.1875rem;\n  background-color: var(--wp--preset--color--dark);\n  transition: transform var(--transition-speed-longer) var(--transition-timing-function);\n}\n.wp-block-button.is-style-arrow-left .wp-block-button__link::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  bottom: calc(50% - 11.6px);\n  left: -1.875rem;\n  width: 0.875rem;\n  height: 1.5rem;\n  transform: rotate(180deg);\n  transform-origin: center;\n  background-image: url(\"data:image\/svg+xml,%3Csvg width='14' height='24' viewBox='0 0 14 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Crect x='0.03125' y='21.2812' width='16.5286' height='3' transform='rotate(-45 0.03125 21.2812)' fill='black'\/%3E%3Crect x='11.6948' y='13.8164' width='16.5389' height='3' transform='rotate(-135 11.6948 13.8164)' fill='black'\/%3E%3C\/svg%3E%0A\");\n  transition: transform var(--transition-speed-longer) var(--transition-timing-function);\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2NvcmUtYnV0dG9uL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0M7O0FBQ0E7RUFDQzs7O0FBS0Q7RUFDQztFQUVBLFlDeUJlO0VEeEJmOztBQUVBO0VBQ0M7O0FBSUQ7RUFDQztFQUNBO0VBRUE7RUFDQTtFQUNBO0VFc0REO0VBakNDO0VGbEJBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtFQUNDLGtCQ0RhO0VER2IsT0NOVzs7QURXZDtFQUNDOztBQUVBO0VBQ0M7RUFFQTtFQUVBO0VFMkJEO0VBakNDO0VBUUE7RUZDQTtFQUNBO0VBQ0EsT0N6Qlc7RUQwQlg7O0FBR0M7RUFDQzs7QUFHRDtFQUNDOztBQUlGO0VBQ0M7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUVBLGtCQ2hEYTtFRGtEYjs7QUFHRDtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFFQSxrQkNuRWE7RURxRWI7O0FBS0g7RUFDQzs7QUFFQTtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBRUE7RUFDQTtFQUVBOztBRzJhRDtFSDNiQTtJQW1CRTtJQUNBO0lBRUE7OztBR3FhRjtFSDNiQTtJQTBCRTtJQUNBO0lBRUE7OztBQUlGO0VBQ0MsT0NsSFk7RURtSFo7O0FBRUE7RUFDQyxrQkN2SFU7O0FEMEhYO0VBQ0Msa0JDM0hVOztBRGlJWjtFQUNDOztBQUtEO0VBQ0M7O0FBSUY7RUFDQztFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFFQTs7QUFFQTtFQUNDO0VBRUE7RUFDQTtFQUVBLGtCQzlKWTtFRCtKWjtFQUNBO0VFbEhEO0VBakNDO0VBUUE7RUY4SUE7RUFDQTtFQUNBO0VBQ0EsT0NsS2dCO0VEb0toQjs7QUFFQTtFQUNDLGtCQ3hLYTtFRHlLYixPQzVLVzs7QUQ4S1g7RUFDQzs7QUFHRDtFQUNDOztBQUlGO0VBQ0M7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUVBLGtCQ3JNVTtFRHVNVjs7QUFHRDtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFFQTs7QUFNRjtFQUNDOztBQUlGO0VBQ0M7RUFFQTtFQUNBO0VBRUE7RUFFQTs7QUFFQTtFQUNDO0VBQ0E7RUFFQSxrQkNoUFk7RURpUFo7RUFDQTtFRXBNRDtFQWpDQztFQVFBO0VGZ09BO0VBQ0E7RUFDQTtFQUNBLE9DcFBnQjtFRHNQaEI7O0FBRUE7RUFDQyxrQkMxUGE7RUQyUGIsT0M5UFc7O0FEZ1FYO0VBQ0M7O0FBR0Q7RUFDQzs7QUFJRjtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQSxrQkN2UlU7RUR5UlY7O0FBR0Q7RUFDQztFQUVBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUVBIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2NvcmUtYnV0dG9uL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG4vLyBCdXR0b25zIHN0eWxlc1xyXG4ud3AtYmxvY2stYnV0dG9ucyB7XHJcblx0bWFyZ2luOiByZW0oNDApIGF1dG87XHJcblx0Ji5hbGlnbmNlbnRlciB7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcbn1cclxuXHJcbi53cC1ibG9jay1idXR0b24ge1xyXG5cdCZfX2xpbmsge1xyXG5cdFx0Y29sb3I6ICNGRkY7XHJcblxyXG5cdFx0YmFja2dyb3VuZDogJGNvbG9yLS1saW5rO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHRcdCY6aG92ZXIsICY6Zm9jdXMge1xyXG5cdFx0XHRjb2xvcjogI0ZGRjtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji5pcy1zdHlsZS1vdXRsaW5lIHtcclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRtaW4td2lkdGg6IHJlbSgxNDQpO1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oNi41KSByZW0oMTApO1xyXG5cclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRcdFx0Ym9yZGVyOiByZW0oMykgc29saWQgJGNvbG9yLS1wcmltYXJ5O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMTYsIDIyKTtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgxLjYpO1xyXG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0XHRmb250LWZhbWlseTogJGZvbnQtYmFzZSwgc2Fucy1zZXJpZjtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcclxuXHJcblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zLXNwZWVkICR0cmFucy1mdW5jLCBjb2xvciAkdHJhbnMtc3BlZWQgJHRyYW5zLWZ1bmM7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXByaW1hcnk7XHJcblxyXG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItLWxpZ2h0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLXN0eWxlLWxpbmVzLWhvcml6b250YWwsICYuaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC10b3AsICYuaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC1ib3R0b20ge1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oMTEpIDA7XHJcblxyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMTYsIDIwLjQsIDEuNik7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLCBzYW5zLXNlcmlmO1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS1kYXJrO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGxlZnQ6IGNhbGMoNTAlIC0gMTZweCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0XHRsZWZ0OiBjYWxjKDUwJSArIDE2cHgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0bGVmdDogNTAlO1xyXG5cclxuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcblxyXG5cdFx0XHRcdHdpZHRoOiByZW0oMTMwKTtcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgzKTtcclxuXHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xyXG5cclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBsZWZ0ICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRib3R0b206IDA7XHJcblx0XHRcdFx0bGVmdDogNTAlO1xyXG5cclxuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcblxyXG5cdFx0XHRcdHdpZHRoOiByZW0oMTMwKTtcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgzKTtcclxuXHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xyXG5cclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBsZWZ0ICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC10b3AsICYuaXMtc3R5bGUtbGluZXMtaG9yaXpvbnRhbC1ncmFkaWVudC1ib3R0b20ge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0dG9wOiA1MCU7XHJcblxyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuXHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuXHRcdFx0d2lkdGg6IHJlbSgzMjgpO1xyXG5cdFx0XHRoZWlnaHQ6IHJlbSgzMjgpO1xyXG5cclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiByZW0oMzI4KSByZW0oMzI4KTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oMzUxKTtcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgzNTEpO1xyXG5cclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IHJlbSgzNTEpIHJlbSgzNTEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14eGwnKSB7XHJcblx0XHRcdFx0d2lkdGg6IHJlbSg0MzMpO1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDQzMyk7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogcmVtKDQzMykgcmVtKDQzMyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQud3AtYmxvY2stYnV0dG9uX19saW5rIHtcclxuXHRcdFx0Y29sb3I6ICRjb2xvci0tbGlnaHQ7XHJcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG5cdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tZGFyaztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tZGFyaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1saW5lcy1ob3Jpem9udGFsLWdyYWRpZW50LXRvcCB7XHJcblx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9jaXJjbGUtZ3JhZGllbnQtdG9wLnBuZycpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1saW5lcy1ob3Jpem9udGFsLWdyYWRpZW50LWJvdHRvbSB7XHJcblx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9jaXJjbGUtZ3JhZGllbnQtYm90dG9tLnBuZycpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1hcnJvdy1yaWdodCwgJi5pcy1zdHlsZS1hcnJvdy1yaWdodC13aWRlciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bGVmdDogNTAlO1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcblxyXG5cdFx0Zm9udC1zaXplOiAwO1xyXG5cclxuXHRcdG1pbi13aWR0aDogcmVtKDIyNCk7XHJcblxyXG5cdFx0LndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcblx0XHRcdHBhZGRpbmc6IHJlbSg4KSByZW0oMTApO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tbGlnaHQ7XHJcblx0XHRcdGJvcmRlcjogcmVtKDMpIHNvbGlkICRjb2xvci0tcHJpbWFyeTtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMTYsIDIwLjQsIDEuNik7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLCBzYW5zLXNlcmlmO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS1zZWNvbmRhcnk7XHJcblxyXG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmMsIGNvbG9yICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmM7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXByaW1hcnk7XHJcblx0XHRcdFx0Y29sb3I6ICRjb2xvci0tbGlnaHQ7XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IGNhbGMoNTAlIC0gMS41cHgpO1xyXG5cdFx0XHRcdGxlZnQ6IHJlbSgtMjkpO1xyXG5cdFx0XHRcdHJpZ2h0OiByZW0oLTI1KTtcclxuXHRcdFx0XHR6LWluZGV4OiAtMTtcclxuXHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oMyk7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tZGFyaztcclxuXHJcblx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRib3R0b206IGNhbGMoNTAlIC0gMTIuNXB4KTtcclxuXHRcdFx0XHRyaWdodDogcmVtKC0yNyk7XHJcblxyXG5cdFx0XHRcdHdpZHRoOiByZW0oMTQpO1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDI0KTtcclxuXHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAxNCAyNCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3JlY3QgeD0nMC4wMzEyNScgeT0nMjEuMjgxMicgd2lkdGg9JzE2LjUyODYnIGhlaWdodD0nMycgdHJhbnNmb3JtPSdyb3RhdGUoLTQ1IDAuMDMxMjUgMjEuMjgxMiknIGZpbGw9J2JsYWNrJy8lM0UlM0NyZWN0IHg9JzExLjY5NDgnIHk9JzEzLjgxNjQnIHdpZHRoPScxNi41Mzg5JyBoZWlnaHQ9JzMnIHRyYW5zZm9ybT0ncm90YXRlKC0xMzUgMTEuNjk0OCAxMy44MTY0KScgZmlsbD0nYmxhY2snLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcblxyXG5cdFx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnMtc3BlZWQtbG9uZ2VyICR0cmFucy1mdW5jO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLXN0eWxlLWFycm93LXJpZ2h0LXdpZGVyIHtcclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oOCkgcmVtKDMwLjUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1hcnJvdy1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAxO1xyXG5cclxuXHRcdGZvbnQtc2l6ZTogMDtcclxuXHJcblx0XHRtaW4td2lkdGg6IHJlbSgyMjQpO1xyXG5cclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oOCkgcmVtKDEwKTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblxyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWxpZ2h0O1xyXG5cdFx0XHRib3JkZXI6IHJlbSgzKSBzb2xpZCAkY29sb3ItLXByaW1hcnk7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDE2LCAyMC40LCAxLjYpO1xyXG5cdFx0XHRmb250LXdlaWdodDogODAwO1xyXG5cdFx0XHRmb250LWZhbWlseTogJGZvbnQtYmFzZSwgc2Fucy1zZXJpZjtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0Y29sb3I6ICRjb2xvci0tc2Vjb25kYXJ5O1xyXG5cclxuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnMtc3BlZWQtbG9uZ2VyICR0cmFucy1mdW5jLCBjb2xvciAkdHJhbnMtc3BlZWQtbG9uZ2VyICR0cmFucy1mdW5jO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xyXG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItLWxpZ2h0O1xyXG5cclxuXHRcdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpIHJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IGNhbGMoNTAlIC0gMS41cHgpO1xyXG5cdFx0XHRcdGxlZnQ6IHJlbSgtMjkpO1xyXG5cdFx0XHRcdHJpZ2h0OiByZW0oLTI1KTtcclxuXHRcdFx0XHR6LWluZGV4OiAtMTtcclxuXHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oMyk7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tZGFyaztcclxuXHJcblx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFucy1zcGVlZC1sb25nZXIgJHRyYW5zLWZ1bmM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRib3R0b206IGNhbGMoNTAlIC0gMTEuNnB4KTtcclxuXHRcdFx0XHRsZWZ0OiByZW0oLTMwKTtcclxuXHJcblx0XHRcdFx0d2lkdGg6IHJlbSgxNCk7XHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oMjQpO1xyXG5cclxuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuXHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAxNCAyNCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3JlY3QgeD0nMC4wMzEyNScgeT0nMjEuMjgxMicgd2lkdGg9JzE2LjUyODYnIGhlaWdodD0nMycgdHJhbnNmb3JtPSdyb3RhdGUoLTQ1IDAuMDMxMjUgMjEuMjgxMiknIGZpbGw9J2JsYWNrJy8lM0UlM0NyZWN0IHg9JzExLjY5NDgnIHk9JzEzLjgxNjQnIHdpZHRoPScxNi41Mzg5JyBoZWlnaHQ9JzMnIHRyYW5zZm9ybT0ncm90YXRlKC0xMzUgMTEuNjk0OCAxMy44MTY0KScgZmlsbD0nYmxhY2snLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcblxyXG5cdFx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnMtc3BlZWQtbG9uZ2VyICR0cmFucy1mdW5jO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8vKiBCUkVBS1BPSU5UUyAqLy9cclxuJGJyZWFrcG9pbnRzOiAoeHM6IDM3NXB4LCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0NDBweCwgbWF4OiAxOTIwcHgpO1xyXG5cclxuLy8qIENPTlRBSU5FUiB3aWR0aCB2YXJpYWJsZXMgKi8vXHJcbiRjb250YWluZXItbW9iaWxlOiA3MjBweDtcclxuJGNvbnRhaW5lci1sZzogOTYwcHg7XHJcbiRjb250YWluZXIteGw6IDEwODBweDtcclxuJGNvbnRhaW5lci14eGw6IHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemUpOyAvLyB0aGVtZS5qc29uIHNldHRpbmdzLmxheW91dFxyXG4kY29udGFpbmVyLXBhZGRpbmc6IDcwOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jdXN0b20uYmFzZVBhZGRpbmdcclxuXHJcbi8vKiBGT05UUyAqLy9cclxuJGZvbnQtYmFzZTogdmFyKC0td3AtLXByZXNldC0tZm9udC1mYW1pbHktLWJhc2UtZm9udCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udEZhbWlsaWVzXHJcbiRmb250LWJhc2UtbmFycm93OiAnZGluLTIwMTQtbmFycm93JztcclxuJGZvbnQtdGl0bGU6ICdtaW5lcnZhLW1vZGVybic7XHJcblxyXG4kZm9udC1zaXplLWRlc2t0b3A6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0tbWVkaXVtKTsvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRTaXplc1xyXG4kbGluZS1oZWlnaHQtZGVza3RvcDogMS41O1xyXG5cclxuLy8gU2V0IE1vYmlsZSBmb250LXNpemUgLyBsaW5lLWhlaWdodCBzdHlsZXMgaW4gdGhlbWUuanNvbiBzdHlsZXMudHlwb2dyYXBoeVxyXG5cclxuLy8qIFNQQUNJTkdTICovL1xyXG5cclxuLy8gQmxvY2sgU3BhY2luZ3NcclxuJHNwYWNpbmctbW9iaWxlOiAyNjsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJHNwYWNpbmc6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4kbWFyZ2luLW1vYmlsZTogMzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnNwYWNpbmcuc3BhY2luZ1NpemVzXHJcbiRtYXJnaW46IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4vLyBNZWRpYSBTcGFjaW5nXHJcbiRtZWRpYS1tYXJnaW46IHZhcigtLXdwLS1jdXN0b20tLW1lZGlhLXNwYWNpbmcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jdXN0b20ubWVkaWFTcGFjaW5nOyAvL3B4XHJcblxyXG4vLyogQ09MT1JTICovL1xyXG5cclxuLy8gQmFzZSBDb2xvcnNcclxuJGNvbG9yLS1kYXJrOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZGFyayk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1saWdodCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBNYWluIENvbG9yc1xyXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1zZWNvbmRhcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5LTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5LTEpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBPdGhlciBDb2xvcnNcclxuJGNvbG9yLS0xOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTM6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0zKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS00OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tNTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTUpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gRWxlbWVudHMgQ29sb3JzXHJcbiRjb2xvci0tYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tYm9keTogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1ib3JkZXI6ICRjb2xvci0tZGFyaztcclxuXHJcbi8vIFRoZW1lIFRleHQgQ29sb3JzXHJcbiRjb2xvci0tdGV4dDogJGNvbG9yLS1kYXJrO1xyXG4kY29sb3ItLXRleHQtbGlnaHQ6ICRjb2xvci0tbGlnaHQ7XHJcbiRjb2xvci0tbGluazogJGNvbG9yLS1wcmltYXJ5O1xyXG4kY29sb3ItLWxpbmstaG92ZXI6ICRjb2xvci0tZGFyaztcclxuXHJcbi8vKiBPVEhFUiAqLy9cclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiR0cmFucy1zcGVlZDogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZCk7XHJcbiR0cmFucy1zcGVlZC1sb25nZXI6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtbG9uZ2VyKTtcclxuJHRyYW5zLXNwZWVkLWFuaW1hdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24pO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uLXBhdHRlcm46IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtYW5pbWF0aW9uLXBhdHRlcm4pO1xyXG4kdHJhbnMtZnVuYzogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7IiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19 *\/\n<\/style><div class=\"wp-block-button wp-block-button--template  cta__link is-style-lines-horizontal bounce bounce-up\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.k-brolinen.com\/sustainability\/\" target=\"_self\">OUR SUSTAINABILITY PROGRAM<\/a><\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"people has-text-align-left\" id=\"officers-directors\">\r\n\t<style>.people {\n  margin: 6.375rem 0rem 4.1875rem;\n  position: relative;\n}\n@media (min-width: 768px) {\n  .people {\n    margin: 11.9375rem 0rem 10rem;\n  }\n}\n.people .people__pattern {\n  position: absolute;\n  right: 0;\n  top: -6.25rem;\n}\n@media (min-width: 992px) {\n  .people .people__pattern {\n    top: 0.375rem;\n  }\n}\n.people .people__content .acf-innerblocks-container {\n  display: flex;\n  justify-content: center;\n}\n.people .people__content .acf-innerblocks-container .wp-block-heading {\n  font-size: 2rem;\n  line-height: 1.0625;\n  letter-spacing: 0.4625rem;\n  font-family: \"din-2014-narrow\";\n  text-transform: uppercase;\n  text-align: center;\n  max-width: 22.25rem;\n  margin: 0 -0.4625rem 2.5rem 0;\n}\n@media (min-width: 768px) {\n  .people .people__content .acf-innerblocks-container .wp-block-heading {\n    font-size: 2.375rem;\n    line-height: 1;\n  }\n}\n@media (min-width: 768px) {\n  .people .people__content .acf-innerblocks-container .wp-block-heading {\n    font-size: 2.625rem;\n    line-height: 1;\n    letter-spacing: 0.525rem;\n    margin: 0 -0.525rem 4.5625rem 0;\n  }\n}\n.people .people__list {\n  display: flex;\n  align-items: flex-start;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 2.5rem;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n@media (min-width: 768px) {\n  .people .people__list {\n    gap: 4.3125rem 1.25rem;\n  }\n}\n.people .people__item {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  width: 100%;\n}\n@media (min-width: 768px) {\n  .people .people__item {\n    width: calc(50% - 10px);\n  }\n}\n@media (min-width: 992px) {\n  .people .people__item {\n    width: 19.375rem;\n  }\n}\n@media (min-width: 992px) {\n  .people .people__item:first-child {\n    width: 19.4375rem;\n  }\n}\n.people .people__item__image {\n  width: 16rem;\n  height: 16rem;\n  margin-bottom: 1.25rem;\n}\n@media (min-width: 768px) {\n  .people .people__item__image {\n    margin-bottom: 2.3125rem;\n  }\n}\n.people .people__item__image img {\n  width: 100%;\n  height: 100%;\n}\n.people .people__item__title {\n  font-size: 1.875rem;\n  line-height: 1.2;\n  letter-spacing: 0.375rem;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-align: center;\n  text-transform: uppercase;\n  margin-right: -0.375rem;\n  margin-bottom: -0.125rem;\n}\n.people .people__item__position {\n  font-size: 1.375rem;\n  line-height: 1.1818181818;\n  letter-spacing: 0.275rem;\n  font-weight: 700;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-transform: uppercase;\n  text-align: center;\n  color: var(--wp--preset--color--secondary);\n  margin-right: -0.275rem;\n}\n.people .people__item__button {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 0.3125rem;\n  width: calc(100% - 54px);\n  margin: 0 1.6875rem;\n  font-size: 1rem;\n  line-height: 1.6875;\n  font-weight: 800;\n  font-family: \"minerva-modern\", sans-serif;\n  color: var(--wp--preset--color--dark);\n  background-color: transparent;\n  border: none;\n  border-radius: 0rem;\n  transition: color var(--transition-speed) var(--transition-timing-function);\n}\n.people .people__item__button:hover {\n  color: var(--wp--preset--color--secondary);\n}\n.people .people__item__button.active {\n  color: var(--wp--preset--color--secondary);\n}\n.people .people__item__button.active .people__item__button__icon {\n  transform: rotate(90deg);\n}\n.people .people__item__button__icon {\n  font-size: 0;\n  transition: transform var(--transition-speed) var(--transition-timing-function);\n}\n.people .people__item__description {\n  height: 0;\n  opacity: 0;\n  pointer-events: none;\n  margin-top: 0.5625rem;\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n  transition: height var(--transition-speed) var(--transition-timing-function), opacity var(--transition-speed) var(--transition-timing-function);\n}\n@media (min-width: 768px) {\n  .people .people__item__description {\n    margin-left: 1.75rem;\n    margin-right: 1.5625rem;\n  }\n}\n.people .people__item__description.active {\n  height: auto;\n  opacity: 1;\n  pointer-events: all;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1wZW9wbGUvc3R5bGUuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFHQztFQUVHOztBQ3dpQkY7RUQ3aUJGO0lBUUU7OztBQUlNO0VBQ0w7RUFDQTtFQUNBOztBQzhoQkQ7RURqaUJNO0lBTUo7OztBQUtRO0VBQ0k7RUFDQTs7QUFFQTtFRXFEZDtFQWpDQztFRmxCaUI7RUFDQSxhR3BCRDtFSHFCQztFQUNBO0VBRUE7RUFDQTs7QUMwZ0JsQjtFRGxoQmM7SUVxRGQ7SUFqQ0M7OztBRDhmRDtFRGxoQmM7SUVxRGQ7SUFqQ0M7SUZKcUI7SUFFQTs7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFFQTs7QUM0ZVY7RUQxZk07SUFRUTs7O0FBU1I7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUNvZVY7RUR6ZU07SUFRUTs7O0FDaWVkO0VEemVNO0lBWVE7OztBQzZkZDtFRDFkVTtJQUVROzs7QUFJUjtFQUNJO0VBQ0E7RUFFQTs7QUNnZGQ7RURwZFU7SUFPUTs7O0FBR0o7RUFDSTtFQUNBOztBQUlSO0VFekJWO0VBakNDO0VGNERhO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHSjtFRXBDVjtFQWpDQztFRnVFYTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0dyRkc7RUh1Rkg7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUV2RGQ7RUFqQ0M7RUYyRmE7RUFDQTtFQUNBLE9HM0dGO0VINkdFO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0ksT0cvR0Q7O0FIa0hIO0VBQ0ksT0duSEQ7O0FIcUhDO0VBQ0k7O0FBSVI7RUFDSTtFQUVBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUU1RmQ7RUFqQ0M7RUZpSWE7O0FDNlhkO0VEdFlVO0lBWVE7SUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0EiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMva2Jyby9wYXJ0cy9ndXRlbmJlcmcvYWNmLXBlb3BsZS9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLnBlb3BsZSB7XHJcblx0JGJsb2NrOiAmO1xyXG5cclxuXHRtYXJnaW46IHJlbSgxMDIpIHJlbSgwKSByZW0oNjcpO1xyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdG1hcmdpbjogcmVtKDE5MSkgcmVtKDApIHJlbSgxNjApO1xyXG5cdH1cclxuXHJcbiAgICAjeyRibG9ja30ge1xyXG4gICAgICAgICZfX3BhdHRlcm4ge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHR0b3A6IHJlbSgtMTAwKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdHRvcDogcmVtKDYpO1xyXG5cdFx0XHR9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX19jb250ZW50IHtcclxuICAgICAgICAgICAgLmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgICAgIC53cC1ibG9jay1oZWFkaW5nIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDMyLCAzNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSg3LjQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLW5hcnJvdztcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMzU2KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKC03LjQpIHJlbSg0MCkgMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMzgsIDM4KTsgXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCg0MiwgNDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDguNCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKC04LjQpIHJlbSg3MykgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2xpc3Qge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZ2FwOiByZW0oNDApO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcbiAgICAgICAgICAgICAgICBnYXA6IHJlbSg2OSkgcmVtKDIwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2l0ZW0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMzEwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDMxMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICZfX2ltYWdlIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMjU2KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDI1Nik7XHJcblxyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDMwLCAzNik7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDYpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93LCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtNik7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oLTIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmX19wb3NpdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDIyLCAyNik7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDQuNCk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93LCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItLXNlY29uZGFyeTtcclxuXHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtNC40KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJl9fYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBnYXA6IHJlbSg1KTtcclxuXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNTRweCk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDI3KTtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KDE2LCAyNyk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXRpdGxlLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci0tZGFyaztcclxuXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnMtc3BlZWQgJHRyYW5zLWZ1bmM7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci0tc2Vjb25kYXJ5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLS1zZWNvbmRhcnk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5wZW9wbGVfX2l0ZW1fX2J1dHRvbl9faWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJl9faWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zLXNwZWVkICR0cmFucy1mdW5jO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDkpO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMTgsIDMwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgJHRyYW5zLXNwZWVkICR0cmFucy1mdW5jLCBvcGFjaXR5ICR0cmFucy1zcGVlZCAkdHJhbnMtZnVuYztcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDI4KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyNSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0fVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcbiIsIi8vKiBCUkVBS1BPSU5UUyAqLy9cclxuJGJyZWFrcG9pbnRzOiAoeHM6IDM3NXB4LCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0NDBweCwgbWF4OiAxOTIwcHgpO1xyXG5cclxuLy8qIENPTlRBSU5FUiB3aWR0aCB2YXJpYWJsZXMgKi8vXHJcbiRjb250YWluZXItbW9iaWxlOiA3MjBweDtcclxuJGNvbnRhaW5lci1sZzogOTYwcHg7XHJcbiRjb250YWluZXIteGw6IDEwODBweDtcclxuJGNvbnRhaW5lci14eGw6IHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemUpOyAvLyB0aGVtZS5qc29uIHNldHRpbmdzLmxheW91dFxyXG4kY29udGFpbmVyLXBhZGRpbmc6IDcwOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jdXN0b20uYmFzZVBhZGRpbmdcclxuXHJcbi8vKiBGT05UUyAqLy9cclxuJGZvbnQtYmFzZTogdmFyKC0td3AtLXByZXNldC0tZm9udC1mYW1pbHktLWJhc2UtZm9udCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udEZhbWlsaWVzXHJcbiRmb250LWJhc2UtbmFycm93OiAnZGluLTIwMTQtbmFycm93JztcclxuJGZvbnQtdGl0bGU6ICdtaW5lcnZhLW1vZGVybic7XHJcblxyXG4kZm9udC1zaXplLWRlc2t0b3A6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0tbWVkaXVtKTsvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRTaXplc1xyXG4kbGluZS1oZWlnaHQtZGVza3RvcDogMS41O1xyXG5cclxuLy8gU2V0IE1vYmlsZSBmb250LXNpemUgLyBsaW5lLWhlaWdodCBzdHlsZXMgaW4gdGhlbWUuanNvbiBzdHlsZXMudHlwb2dyYXBoeVxyXG5cclxuLy8qIFNQQUNJTkdTICovL1xyXG5cclxuLy8gQmxvY2sgU3BhY2luZ3NcclxuJHNwYWNpbmctbW9iaWxlOiAyNjsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJHNwYWNpbmc6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4kbWFyZ2luLW1vYmlsZTogMzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnNwYWNpbmcuc3BhY2luZ1NpemVzXHJcbiRtYXJnaW46IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4vLyBNZWRpYSBTcGFjaW5nXHJcbiRtZWRpYS1tYXJnaW46IHZhcigtLXdwLS1jdXN0b20tLW1lZGlhLXNwYWNpbmcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jdXN0b20ubWVkaWFTcGFjaW5nOyAvL3B4XHJcblxyXG4vLyogQ09MT1JTICovL1xyXG5cclxuLy8gQmFzZSBDb2xvcnNcclxuJGNvbG9yLS1kYXJrOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZGFyayk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1saWdodCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBNYWluIENvbG9yc1xyXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1zZWNvbmRhcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5LTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5LTEpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBPdGhlciBDb2xvcnNcclxuJGNvbG9yLS0xOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTM6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0zKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS00OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tNTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTUpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gRWxlbWVudHMgQ29sb3JzXHJcbiRjb2xvci0tYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tYm9keTogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1ib3JkZXI6ICRjb2xvci0tZGFyaztcclxuXHJcbi8vIFRoZW1lIFRleHQgQ29sb3JzXHJcbiRjb2xvci0tdGV4dDogJGNvbG9yLS1kYXJrO1xyXG4kY29sb3ItLXRleHQtbGlnaHQ6ICRjb2xvci0tbGlnaHQ7XHJcbiRjb2xvci0tbGluazogJGNvbG9yLS1wcmltYXJ5O1xyXG4kY29sb3ItLWxpbmstaG92ZXI6ICRjb2xvci0tZGFyaztcclxuXHJcbi8vKiBPVEhFUiAqLy9cclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiR0cmFucy1zcGVlZDogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZCk7XHJcbiR0cmFucy1zcGVlZC1sb25nZXI6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtbG9uZ2VyKTtcclxuJHRyYW5zLXNwZWVkLWFuaW1hdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24pO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uLXBhdHRlcm46IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtYW5pbWF0aW9uLXBhdHRlcm4pO1xyXG4kdHJhbnMtZnVuYzogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7Il19 *\/\n<\/style>\t<div class=\"people__pattern pattern pattern--right\">\r\n\t\t<div class=\"people__pattern--desktop desktop\">\r\n\t\t\t<svg width=\"442\" height=\"71\" viewBox=\"0 0 442 71\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<rect x=\"442\" y=\"60.8572\" width=\"10.1428\" height=\"442\" transform=\"rotate(90 442 60.8572)\" fill=\"url(#paint0_linear_64_1150)\"\/>\r\n<rect x=\"442\" y=\"40.5715\" width=\"10.1428\" height=\"442\" transform=\"rotate(90 442 40.5715)\" fill=\"url(#paint1_linear_64_1150)\"\/>\r\n<rect x=\"442\" y=\"20.2856\" width=\"10.1428\" height=\"442\" transform=\"rotate(90 442 20.2856)\" fill=\"url(#paint2_linear_64_1150)\"\/>\r\n<rect x=\"442\" width=\"10.1428\" height=\"442\" transform=\"rotate(90 442 0)\" fill=\"url(#paint3_linear_64_1150)\"\/>\r\n<defs>\r\n<linearGradient id=\"paint0_linear_64_1150\" x1=\"447.071\" y1=\"60.8572\" x2=\"447.071\" y2=\"502.857\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint1_linear_64_1150\" x1=\"447.071\" y1=\"40.5715\" x2=\"447.071\" y2=\"482.572\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint2_linear_64_1150\" x1=\"447.071\" y1=\"20.2856\" x2=\"447.071\" y2=\"462.286\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint3_linear_64_1150\" x1=\"447.071\" y1=\"0\" x2=\"447.071\" y2=\"442\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<\/defs>\r\n<\/svg>\t\t<\/div>\r\n\t\t<div class=\"people__pattern--tablet tablet\">\r\n\t\t\t<svg width=\"338\" height=\"71\" viewBox=\"0 0 338 71\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<rect x=\"338\" y=\"60.8569\" width=\"10.1428\" height=\"338\" transform=\"rotate(90 338 60.8569)\" fill=\"url(#paint0_linear_62_464)\"\/>\r\n<rect x=\"338\" y=\"40.5713\" width=\"10.1428\" height=\"338\" transform=\"rotate(90 338 40.5713)\" fill=\"url(#paint1_linear_62_464)\"\/>\r\n<rect x=\"338\" y=\"20.2856\" width=\"10.1428\" height=\"338\" transform=\"rotate(90 338 20.2856)\" fill=\"url(#paint2_linear_62_464)\"\/>\r\n<rect x=\"338\" width=\"10.1428\" height=\"338\" transform=\"rotate(90 338 0)\" fill=\"url(#paint3_linear_62_464)\"\/>\r\n<defs>\r\n<linearGradient id=\"paint0_linear_62_464\" x1=\"343.071\" y1=\"60.8569\" x2=\"343.071\" y2=\"398.857\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint1_linear_62_464\" x1=\"343.071\" y1=\"40.5713\" x2=\"343.071\" y2=\"378.571\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint2_linear_62_464\" x1=\"343.071\" y1=\"20.2856\" x2=\"343.071\" y2=\"358.286\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint3_linear_62_464\" x1=\"343.071\" y1=\"0\" x2=\"343.071\" y2=\"338\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<\/defs>\r\n<\/svg>\t\t<\/div>\r\n\t<\/div>\r\n\t<div class=\"container\">\r\n\t\t<div class=\"people__inner\">\r\n\t\t\t<div class=\"people__content bounce bounce-up\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<h2 class=\"wp-block-heading\">Officers &amp; directors<\/h2>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\t\t\t<ul class=\"people__list\">\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Linda McCurdy - K-Bro Linen Director, President &amp; Chief Executive Officer\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people1.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Linda McCurdy<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\">Director, President &#038; Chief Executive Officer<\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tLinda McCurdy joined K-Bro in May 1998 as Chief Financial Officer and became President and Chief Executive Officer in January 2000. Prior to joining K-Bro, she was Chief Financial Officer of Canadian Inovotech, a biochemical products processor. Linda\u2019s prior experience also includes six years at the Overwaitea Food Group where she held a number of financial positions. She is a Certified General Accountant and has an MBA from the University of Western Ontario.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Sean Curtis\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean-320x320.png 320w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Sean.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Sean Curtis<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\">Senior Vice-President<\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tSean Curtis joined K-Bro in 1984 and has over 34 years of experience in the laundry and linen services industry. As Senior Vice President, Sean works directly with K-Bro\u2019s President and CEO in the areas of plant expansions, capital equipment installations and business development into new markets.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Kristie Plaquin\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie-320x320.png 320w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/07\/Portrait-Kristie.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Kristie Plaquin<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\">Chief Financial Officer<\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tKristie Plaquin has been with K-Bro since 2001 and was the Chief Financial Officer from January 2004 through May 2005 during which time the company completed its Initial Public Offering and debt financings. After stepping away from K-Bro for a year through 2005 &#8211; 2006, Kristie has served as Director of Financial Planning during which time she has played a lead role in all of K-Bro&#8217;s growth and financing initiatives. Kristie joined K-Bro from PricewaterhouseCoopers and holds a Bachelor of Commerce degree from the University of Alberta and a Chartered Accountant designation.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Michael Percy - K-Bro Linen Director, Chair\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people4.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Michael Percy<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\">Chair, Director<\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tMichael Percy served as the Chief of Staff to Alberta Premier Jim Prentice, was a Professor of Strategic Management at the Alberta School of Business at the University of Alberta and served as Dean at the Alberta School of Business for three consecutive terms. He has received a BA (Honours) from the University of Victoria, an MA (Economics) and a PhD (Economics) from Queen\u2019s University.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Elise Rees - K-Bro Linen Director, Chair of Audit Committee\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people5.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Elise Rees<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\">Director, Chair of Audit Committee<\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tElise Rees has over 35 years of experience in public accounting. She spent 18 years as a partner with Ernst &#038; Young with 14 of these years focused on acquisitions, mergers and corporate restructuring. She has also been the global customer-coordinating partner for services to the BC Credit Union Industry. Elise is a Chartered Professional Accountant and obtained her FCPA and FCA designation from the Insititute of Chartered Accountants of BC in 2010. In 2007, Elise was honoured with the Influential Women in Business Award and the Ernst &#038; Young Rosemarie Meschi Award for Advancing Gender Diversity and in 2012 with the Community Builder Award.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Matthew Hills - K-Bro Linen Director\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people7.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Matthew Hill<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\"><span class=\"translation-block\"><span data-context=\"text1\">Director<\/span><\/span><\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tMatthew Hills was a Managing Director of LLM Capital Partners, a private equity firm, through 2019, and was senior partner at BG Affiliates, the private equity group that acquired the Corporation in 1997. Matthew has also held positions at Signature Capital, LEK Partnership, Drexel Burnham Lambert and Bain &#038; Company. He provides advisory consulting services to the Corporation. He received an MBA from Harvard Business School and a BA Economics and Politics) from Brandeis University.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Rona Ambrose\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--12x12.png 12w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director--320x320.png 320w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/Ronalee-Ambrose-K-Bro-Director-.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Rona Ambrose<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\"><span class=\"translation-block\"><span data-context=\"text2\">Director<\/span><\/span><\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tThe Honourable Ronalee Ambrose currently serves as Deputy Chairwoman of TD Securities.\u00a0 She has served on several corporate and non-profit boards. Rona is the founder and Chair of the Council of Women CEO&#8217;s, Chair of Plan International Canada, and a passionate global champion for the rights of women and girls. Prior to her retirement from politics in 2017, she was Leader of Canada&#8217;s Official Opposition in the House of Commons and Leader of the Conservative Party of Canada.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t<li class=\"people__item bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"people__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-256x256.png\" class=\"attachment-people-img size-people-img\" alt=\"Portrait of Steven Matyas - K-Bro Linen Director\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-768x768.png 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-720x720.png 720w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-739x739.png 739w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/people6.png 800w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/div>\r\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"people__item__title\">Steven Matyas<\/h3>\r\n\t\t\t\t\t\t\t\t\t\t<p class=\"people__item__position\"><span class=\"translation-block\"><span data-context=\"text3\">Director<\/span><\/span><\/p>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"people__item__button\">\r\n\t\t\t\t\t\t<span>Read Profile<\/span>\r\n\t\t\t\t\t\t<div class=\"people__item__button__icon\">\r\n\t\t\t\t\t\t\t<svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\t\t\t\t\t\t\t\t<path d=\"M7.61597 6.58712L2.64722 11.5559C2.47981 11.7233 2.21194 11.7233 2.04453 11.5559L0.932931 10.4443C0.76552 10.2769 0.76552 10.009 0.932931 9.84159L4.48873 6.28578L0.932931 2.72998C0.76552 2.56257 0.76552 2.29471 0.932931 2.1273L2.04453 1.01569C2.21194 0.848284 2.47981 0.848284 2.64722 1.01569L7.61597 5.98445C7.78338 6.15186 7.78338 6.41971 7.61597 6.58712Z\" fill=\"#823F7C\"\/>\r\n\t\t\t\t\t\t\t<\/svg>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/button>\r\n\t\t\t\t\t<div class=\"people__item__description\">\r\n\t\t\t\t\t\t<p class=\"people__item__description__inner\">\r\n\t\t\t\t\t\t\tSteven Matyas most recently served as the Chief Executive Officer for Staples Retail, where he has held several key positions since 1991. He previously served as Executive Vice-President and Chief Operating Officer at Flertom Investments, a chain of card, gift, and stationary stores. Steven also held the position of Executive Vice-President and Chief Operating Officer at SuperPharm, a chain of franchised pharmacies.\t\t\t\t\t\t<\/p>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t<\/ul>\r\n\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"cta-info has-text-align-left\" id=\"governance-documents\" data-background=\"gray\">\r\n\t<style>.cta-info {\n  margin: 3.75rem 0;\n  position: relative;\n}\n@media (min-width: 768px) {\n  .cta-info {\n    margin: 5rem 0;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info {\n    margin: 8.8125rem 0;\n  }\n}\n.cta-info--contact[data-background=gray] {\n  padding: 1.25rem 0 !important;\n}\n@media (min-width: 992px) {\n  .cta-info--contact[data-background=gray] .cta-info__content .acf-innerblocks-container .wp-block-button {\n    margin-top: 1.875rem !important;\n  }\n}\n.cta-info[data-background=gray] {\n  background-color: var(--wp--preset--color--gray-1);\n  margin: 4.5rem 0;\n  padding: 3.6875rem 0 5rem;\n}\n@media (min-width: 768px) {\n  .cta-info[data-background=gray] {\n    margin: 6.625rem 0;\n    padding: 8.3125rem 0 8.375rem;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info[data-background=gray] {\n    margin: 5rem 0;\n    padding: 6.75rem 0 7.8125rem;\n  }\n}\n.cta-info[data-background=gray] .cta-info__inner {\n  align-items: center;\n  flex-direction: column;\n}\n@media (min-width: 992px) {\n  .cta-info[data-background=gray] .cta-info__inner {\n    flex-direction: row;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info[data-background=gray] .cta-info__inner--image-side-right {\n    flex-direction: row-reverse;\n  }\n}\n@media (max-width: 991px) {\n  .cta-info[data-background=gray] .cta-info__image--width-420 {\n    width: 16.75rem;\n    min-width: 16.75rem;\n  }\n}\n@media (max-width: 991px) {\n  .cta-info[data-background=gray] .cta-info__image--width-420 img {\n    width: 16.75rem;\n    min-width: 16.75rem;\n  }\n}\n@media (max-width: 991px) {\n  .cta-info[data-background=gray] .cta-info__image--height-420 > img {\n    height: 16.75rem !important;\n    min-height: 16.75rem;\n    max-height: 16.75rem;\n  }\n}\n.cta-info .cta-info__inner {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-direction: column-reverse;\n  gap: 3.6875rem;\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__inner {\n    gap: 2.8125rem;\n    margin-right: -1.25rem;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__inner {\n    margin-right: 0;\n    align-items: flex-start;\n    flex-direction: row;\n  }\n}\n@media (min-width: 1200px) {\n  .cta-info .cta-info__inner {\n    gap: 3.75rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta-info .cta-info__inner--gap-63 {\n    gap: 3.9375rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta-info .cta-info__inner--gap-110 {\n    gap: 6.875rem;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__inner--image-side-right {\n    flex-direction: row-reverse;\n  }\n}\n.cta-info .cta-info__image {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 2.75rem;\n}\n.cta-info .cta-info__image > img {\n  width: 18.75rem;\n  min-width: 18.75rem;\n  height: 18.75rem;\n  min-height: 18.75rem;\n  max-height: 18.75rem;\n}\n@media (min-width: 390px) {\n  .cta-info .cta-info__image > img {\n    width: 21.125rem;\n    min-width: 21.125rem;\n    height: 21.125rem;\n    min-height: 21.125rem;\n    max-height: 21.125rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image > img {\n    width: 26.25rem;\n    min-width: 26.25rem;\n    height: 26.25rem;\n    min-height: 26.25rem;\n    max-height: 26.25rem;\n  }\n}\n.cta-info .cta-info__image--width-420 {\n  width: 18.75rem;\n  min-width: 18.75rem;\n}\n@media (min-width: 390px) {\n  .cta-info .cta-info__image--width-420 {\n    width: 21.125rem;\n    min-width: 21.125rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--width-420 {\n    width: 26.25rem;\n    min-width: 26.25rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--width-460 {\n    width: 28.75rem;\n    min-width: 28.75rem;\n  }\n}\n.cta-info .cta-info__image--width-550 {\n  width: 19rem;\n  min-width: 19rem;\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--width-550 {\n    width: 21.5625rem;\n    min-width: 21.5625rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta-info .cta-info__image--width-550 {\n    width: 34.375rem;\n    min-width: 34.375rem;\n  }\n}\n.cta-info .cta-info__image--height-420 > img {\n  height: 18.75rem;\n  min-height: 18.75rem;\n  max-height: 18.75rem;\n}\n@media (min-width: 390px) {\n  .cta-info .cta-info__image--height-420 > img {\n    height: 21.125rem;\n    min-height: 21.125rem;\n    max-height: 21.125rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--height-420 > img {\n    height: 26.25rem !important;\n    min-height: 26.25rem;\n    max-height: 26.25rem;\n  }\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--height-460 > img {\n    height: 28.75rem;\n    min-height: 28.75rem;\n  }\n}\n.cta-info .cta-info__image--height-544 > img {\n  height: 18.75rem !important;\n  min-height: 18.75rem;\n  object-fit: contain !important;\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__image--height-544 > img {\n    height: 21.3125rem !important;\n    min-height: 21.3125rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta-info .cta-info__image--height-544 > img {\n    height: 34rem;\n    min-height: 34rem;\n  }\n}\n.cta-info .cta-info__image--rounded-yes > img {\n  border-radius: 50%;\n}\n.cta-info .cta-info__image > img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.cta-info .cta-info__icons {\n  display: flex;\n  align-items: flex-start;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 1.6875rem;\n  width: 100%;\n}\n.cta-info .cta-info__icons img {\n  max-width: 6.875rem;\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__content {\n    max-width: 39.8125rem;\n  }\n}\n.cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading {\n  font-size: 1.875rem;\n  line-height: 1.2;\n  letter-spacing: 0.375rem;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-transform: uppercase;\n  margin-right: -0.375rem;\n  margin-bottom: 2.25rem;\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading {\n    margin-bottom: 2.5rem;\n  }\n}\n.cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading.h4 {\n  font-size: 1.3125rem;\n  line-height: 1.4285714286;\n  letter-spacing: 0.13125rem;\n}\n.cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading.has-primary-color {\n  font-size: 1.6875rem;\n  line-height: 1.2222222222;\n  margin-bottom: 1.5625rem;\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading.has-primary-color {\n    font-size: 1.875rem;\n    line-height: 1.2;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__content .acf-innerblocks-container .wp-block-heading.has-primary-color {\n    font-size: 2.625rem;\n    line-height: 1;\n    margin-bottom: 2.5rem;\n  }\n}\n.cta-info .cta-info__content .acf-innerblocks-container .is-style-leadparagraph {\n  margin-bottom: 1.9375rem;\n}\n@media (min-width: 992px) {\n  .cta-info .cta-info__content .acf-innerblocks-container .is-style-leadparagraph {\n    margin-top: 2.875rem;\n  }\n}\n.cta-info .cta-info__content .acf-innerblocks-container p {\n  font-size: 1.125rem;\n  line-height: 1.6666666667;\n}\n.cta-info .cta-info__content .acf-innerblocks-container .wp-block-button {\n  margin-top: 3.25rem;\n}\n.cta-info .cta-info__content .acf-innerblocks-container a:not(.wp-block-button__link) {\n  font-weight: 700;\n  text-decoration: none;\n  color: var(--wp--preset--color--secondary);\n  transition: color var(--transition-speed) var(--transition-timing-function);\n}\n.cta-info .cta-info__content .acf-innerblocks-container a:not(.wp-block-button__link):hover {\n  color: var(--wp--preset--color--primary);\n}\n.cta-info .cta-info__content .acf-innerblocks-container .wp-block-spacer {\n  display: none;\n}\n@media (min-width: 1200px) {\n  .cta-info .cta-info__content .acf-innerblocks-container .wp-block-spacer {\n    display: block;\n  }\n}\n.cta-info .cta-info__title {\n  font-size: 1.6875rem;\n  line-height: 0.962962963;\n  text-align: center;\n  color: var(--wp--preset--color--secondary);\n  margin-top: 2.5rem;\n  margin-bottom: 1.75rem;\n}\n@media (min-width: 768px) {\n  .cta-info .cta-info__title {\n    font-size: 2rem;\n    line-height: 0.9375;\n    margin-top: 1.25rem;\n  }\n}\n@media (min-width: 1200px) {\n  .cta-info .cta-info__title {\n    margin-top: 0rem;\n  }\n}\n\n@media (min-width: 992px) {\n  .cta + .cta-info {\n    margin-top: -6.25rem;\n  }\n}\n@media (min-width: 1440px) {\n  .cta + .cta-info {\n    margin-top: -12.125rem;\n  }\n}\n\n@media (max-width: 767px) {\n  .cta + .cta-info[data-background=gray] {\n    margin-top: -6.25rem;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-media + .cta-info[data-background=gray] {\n    margin-top: -9.375rem;\n  }\n}\n\n.hero-simple + .cta-info[data-background=gray] {\n  margin-top: 0rem;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1jdGEtaW5mby9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL192YXJpYWJsZXMuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ticm8vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUdDO0VBRUE7O0FDd2lCQztFRDdpQkY7SUFRRTs7O0FDcWlCQTtFRDdpQkY7SUFZRTs7O0FBR0Q7RUFDQzs7QUM2aEJBO0VEM2hCQTtJQUVFOzs7QUFLSDtFQUNDLGtCRWNjO0VGWmQ7RUFDQTs7QUNnaEJBO0VEcGhCRDtJQU9FO0lBQ0E7OztBQzRnQkQ7RURwaEJEO0lBWUU7SUFDQTs7O0FBSUE7RUFDQztFQUNBOztBQ2lnQkY7RURuZ0JDO0lBS0U7OztBQzhmSDtFRHpmSTtJQUVFOzs7QUN1Zk47RUQ5ZUc7SUFFRTtJQUNBOzs7QUMyZUw7RUR4ZUk7SUFFRTtJQUNBOzs7QUNxZU47RUQ3ZEk7SUFFRTtJQUNBO0lBQ0E7OztBQVVOO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUMwY0Q7RUQvY0E7SUFRRTtJQUVBOzs7QUNxY0Y7RUQvY0E7SUFjRTtJQUVBO0lBQ0E7OztBQzhiRjtFRC9jQTtJQXFCRTs7O0FDMGJGO0VEdGJFO0lBRUU7OztBQ29iSjtFRGhiRTtJQUVFOzs7QUM4YUo7RUR2YUc7SUFFRTs7O0FBT0w7RUFDQztFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQ2daRjtFRHJaQztJQVFFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQ3lZSDtFRHJaQztJQWdCRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFLRDtFQUNDO0VBQ0E7O0FDMFhIO0VENVhFO0lBS0U7SUFDQTs7O0FDc1hKO0VENVhFO0lBVUU7SUFDQTs7O0FDaVhKO0VEN1dFO0lBRUU7SUFDQTs7O0FBSUY7RUFDQztFQUNBOztBQ29XSDtFRHRXRTtJQUtFO0lBQ0E7OztBQ2dXSjtFRHRXRTtJQVVFO0lBQ0E7OztBQU9EO0VBQ0M7RUFDQTtFQUNBOztBQ2lWSjtFRHBWRztJQU1FO0lBQ0E7SUFDQTs7O0FDNFVMO0VEcFZHO0lBWUU7SUFDQTtJQUNBOzs7QUNzVUw7RURoVUc7SUFFRTtJQUNBOzs7QUFNRjtFQUNDO0VBQ0E7RUFFQTs7QUNtVEo7RUR2VEc7SUFPRTtJQUNBOzs7QUMrU0w7RUR2VEc7SUFZRTtJQUNBOzs7QUFRRjtFQUNDOztBQUtIO0VBQ0M7RUFDQTtFQUVBOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0M7O0FDMFFGO0VEdFFBO0lBRUU7OztBQUlBO0VHN05GO0VBakNDO0VIZ1FFO0VBQ2U7RUFDQTtFQUVmO0VBQ0E7O0FDeVBIO0VEaFFFO0lBVUU7OztBQUdEO0VHMU9IO0VBakNDO0VINlFHOztBQUdEO0VHL09IO0VBakNDO0VIbVJHOztBQzJPSjtFRDlPRztJRy9PSDtJQWpDQzs7O0FGOGZEO0VEOU9HO0lHL09IO0lBakNDO0lINFJJOzs7QUFLSDtFQUNDOztBQzROSDtFRDdORTtJQUlFOzs7QUFJRjtFR3hRRjtFQWpDQzs7QUg2U0M7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7RUFDQSxPRTdUYztFRitUZDs7QUFFQTtFQUNDLE9FblVXOztBRnVVYjtFQUNDOztBQ2dNSDtFRGpNRTtJQUlFOzs7QUFNSjtFR3RTQTtFQWpDQztFSHlVQTtFQUNBLE9FblZnQjtFRnFWaEI7RUFDQTs7QUNpTEQ7RUR2TEE7SUd0U0E7SUFqQ0M7SUhrVkM7OztBQzRLRjtFRHZMQTtJQWVFOzs7O0FDd0tGO0VEbEtGO0lBRUU7OztBQ2dLQTtFRGxLRjtJQU1FOzs7O0FDNEpBO0VEeEpGO0lBRUU7Ozs7QUNzSkE7RURsSkY7SUFFRTs7OztBQUlGO0VBQ0MiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMva2Jyby9wYXJ0cy9ndXRlbmJlcmcvYWNmLWN0YS1pbmZvL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG4uY3RhLWluZm8ge1xyXG4gICAgJGJsb2NrOiAmO1xyXG5cclxuXHRtYXJnaW46IHJlbSg2MCkgMDtcclxuXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdG1hcmdpbjogcmVtKDgwKSAwO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRtYXJnaW46IHJlbSgxNDEpIDA7XHJcblx0fVxyXG5cclxuXHQmLS1jb250YWN0W2RhdGEtYmFja2dyb3VuZD1cImdyYXlcIl0ge1xyXG5cdFx0cGFkZGluZzogcmVtKDIwKSAwICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0LmN0YS1pbmZvX19jb250ZW50IC5hY2YtaW5uZXJibG9ja3MtY29udGFpbmVyIC53cC1ibG9jay1idXR0b24ge1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMzApICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZbZGF0YS1iYWNrZ3JvdW5kPVwiZ3JheVwiXSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWdyYXktMTtcclxuXHJcblx0XHRtYXJnaW46IHJlbSg3MikgMDtcclxuXHRcdHBhZGRpbmc6IHJlbSg1OSkgMCByZW0oODApO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRtYXJnaW46IHJlbSgxMDYpIDA7XHJcblx0XHRcdHBhZGRpbmc6IHJlbSgxMzMpIDAgcmVtKDEzNCk7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRcdG1hcmdpbjogcmVtKDgwKSAwO1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oMTA4KSAwIHJlbSgxMjUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jdGEtaW5mbyB7XHJcblx0XHRcdCZfX2lubmVyIHtcclxuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtLWltYWdlIHtcclxuXHRcdFx0XHRcdCYtc2lkZSB7XHJcblx0XHRcdFx0XHRcdCYtcmlnaHQge1xyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jl9faW1hZ2Uge1xyXG5cdFx0XHRcdCYtLXdpZHRoIHtcclxuXHRcdFx0XHRcdCYtNDIwIHtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9OTkxcHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHJlbSgyNjgpO1xyXG5cdFx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDI2OCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGltZyB7XHJcblx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9OTkxcHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogcmVtKDI2OCk7XHJcblx0XHRcdFx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSgyNjgpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji0taGVpZ2h0IHtcclxuXHRcdFx0XHRcdCYtNDIwIHtcclxuXHRcdFx0XHRcdFx0JiA+IGltZyB7XHJcblx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJzw9OTkxcHgnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgyNjgpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMjY4KTtcclxuXHRcdFx0XHRcdFx0XHRcdG1heC1oZWlnaHQ6IHJlbSgyNjgpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I3skYmxvY2t9IHtcclxuXHRcdCZfX2lubmVyIHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuXHRcdFx0Z2FwOiByZW0oNTkpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0Z2FwOiByZW0oNDUpO1xyXG5cclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbSgtMjApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblxyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdGdhcDogcmVtKDYwKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0tZ2FwIHtcclxuXHRcdFx0XHQmLTYzIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdFx0XHRnYXA6IHJlbSg2Myk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLTExMCB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdFx0Z2FwOiByZW0oMTEwKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLWltYWdlIHtcclxuXHRcdFx0XHQmLXNpZGUge1xyXG5cdFx0XHRcdFx0Ji1yaWdodCB7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2ltYWdlIHtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHR6LWluZGV4OiAxO1xyXG5cclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0Z2FwOiByZW0oNDQpO1xyXG5cclxuXHRcdFx0JiA+IGltZyB7XHJcblx0XHRcdFx0d2lkdGg6IHJlbSgzMDApO1xyXG5cdFx0XHRcdG1pbi13aWR0aDogcmVtKDMwMCk7XHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oMzAwKTtcclxuXHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMzAwKTtcclxuXHRcdFx0XHRtYXgtaGVpZ2h0OiByZW0oMzAwKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49MzkwcHgnKSB7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDMzOCk7XHJcblx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSgzMzgpO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiByZW0oMzM4KTtcclxuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSgzMzgpO1xyXG5cdFx0XHRcdFx0bWF4LWhlaWdodDogcmVtKDMzOCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdHdpZHRoOiByZW0oNDIwKTtcclxuXHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDQyMCk7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbSg0MjApO1xyXG5cdFx0XHRcdFx0bWluLWhlaWdodDogcmVtKDQyMCk7XHJcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiByZW0oNDIwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXdpZHRoIHtcclxuXHRcdFx0XHQmLTQyMCB7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDMwMCk7XHJcblx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSgzMDApO1xyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PTM5MHB4Jykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtKDMzOCk7XHJcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDMzOCk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0oNDIwKTtcclxuXHRcdFx0XHRcdFx0bWluLXdpZHRoOiByZW0oNDIwKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtNDYwIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtKDQ2MCk7XHJcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDQ2MCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLTU1MCB7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDMwNCk7XHJcblx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSgzMDQpO1xyXG5cclxuXHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtKDM0NSk7XHJcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDM0NSk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtKDU1MCk7XHJcblx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDU1MCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1oZWlnaHQge1xyXG5cdFx0XHRcdCYtNDIwIHtcclxuXHRcdFx0XHRcdCYgPiBpbWcge1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgzMDApO1xyXG5cdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMzAwKTtcclxuXHRcdFx0XHRcdFx0bWF4LWhlaWdodDogcmVtKDMwMCk7XHJcblxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj0zOTBweCcpIHtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgzMzgpO1xyXG5cdFx0XHRcdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSgzMzgpO1xyXG5cdFx0XHRcdFx0XHRcdG1heC1oZWlnaHQ6IHJlbSgzMzgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSg0MjApICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRcdFx0bWluLWhlaWdodDogcmVtKDQyMCk7XHJcblx0XHRcdFx0XHRcdFx0bWF4LWhlaWdodDogcmVtKDQyMCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYtNDYwIHtcclxuXHRcdFx0XHRcdCYgPiBpbWcge1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSg0NjApO1xyXG5cdFx0XHRcdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSg0NjApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLTU0NCB7XHJcblx0XHRcdFx0XHQmID4gaW1nIHtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0oMzAwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMzAwKTtcclxuXHJcblx0XHRcdFx0XHRcdG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDtcclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDM0MSkgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMzQxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDU0NCk7XHJcblx0XHRcdFx0XHRcdFx0bWluLWhlaWdodDogcmVtKDU0NCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXJvdW5kZWQge1xyXG5cdFx0XHRcdCYteWVzIHtcclxuXHRcdFx0XHRcdCYgPiBpbWcge1xyXG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmID4gaW1nIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdFx0XHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9faWNvbnMge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdFx0Z2FwOiByZW0oMjcpO1xyXG5cclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG1heC13aWR0aDogcmVtKDExMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jb250ZW50IHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0oNjM3KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmFjZi1pbm5lcmJsb2Nrcy1jb250YWluZXIge1xyXG5cdFx0XHRcdC53cC1ibG9jay1oZWFkaW5nIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMzAsIDM2KTtcclxuXHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oNik7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2UtbmFycm93LCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0oLTYpO1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDM2KTtcclxuXHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDQwKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmLmg0IHtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgZm9udCgyMSwgMzApO1xyXG5cdFx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKDIuMSk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ji5oYXMtcHJpbWFyeS1jb2xvciB7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMjcsIDMzKTtcclxuXHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNSk7XHJcblxyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250KDMwLCAzNik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoNDIsIDQyKTtcclxuXHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDQwKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LmlzLXN0eWxlLWxlYWRwYXJhZ3JhcGgge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDMxKTtcclxuXHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKDQ2KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHAge1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udCgxOCwgMzApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LndwLWJsb2NrLWJ1dHRvbiB7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oNTIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0YTpub3QoLndwLWJsb2NrLWJ1dHRvbl9fbGluaykge1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLXNlY29uZGFyeTtcclxuXHJcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnMtc3BlZWQgJHRyYW5zLWZ1bmM7XHJcblxyXG5cdFx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLXByaW1hcnk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQud3AtYmxvY2stc3BhY2VyIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3RpdGxlIHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udCgyNywgMjYpO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXNlY29uZGFyeTtcclxuXHJcblx0XHRcdG1hcmdpbi10b3A6IHJlbSg0MCk7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgyOCk7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDMyLCAzMCk7XHJcblxyXG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSgwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmN0YSArIC5jdGEtaW5mbyB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oLTEwMCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj14eGwnKSB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oLTE5NCk7XHJcblx0fVxyXG59XHJcblxyXG4uY3RhICsgLmN0YS1pbmZvW2RhdGEtYmFja2dyb3VuZD1cImdyYXlcIl0ge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc8PTc2N3B4Jykge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKC0xMDApO1xyXG5cdH1cclxufVxyXG5cclxuLnRleHQtbWVkaWEgKyAuY3RhLWluZm9bZGF0YS1iYWNrZ3JvdW5kPVwiZ3JheVwiXSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oLTE1MCk7XHJcblx0fVxyXG59XHJcblxyXG4uaGVyby1zaW1wbGUgKyAuY3RhLWluZm9bZGF0YS1iYWNrZ3JvdW5kPVwiZ3JheVwiXSB7XHJcblx0bWFyZ2luLXRvcDogcmVtKDApO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy8qIEJSRUFLUE9JTlRTICovL1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzc1cHgsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCBtYXg6IDE5MjBweCk7XHJcblxyXG4vLyogQ09OVEFJTkVSIHdpZHRoIHZhcmlhYmxlcyAqLy9cclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTA4MHB4O1xyXG4kY29udGFpbmVyLXh4bDogdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLXdpZGUtc2l6ZSk7IC8vIHRoZW1lLmpzb24gc2V0dGluZ3MubGF5b3V0XHJcbiRjb250YWluZXItcGFkZGluZzogNzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuJGZvbnQtYmFzZS1uYXJyb3c6ICdkaW4tMjAxNC1uYXJyb3cnO1xyXG4kZm9udC10aXRsZTogJ21pbmVydmEtbW9kZXJuJztcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOy8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udFNpemVzXHJcbiRsaW5lLWhlaWdodC1kZXNrdG9wOiAxLjU7XHJcblxyXG4vLyBTZXQgTW9iaWxlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IHN0eWxlcyBpbiB0aGVtZS5qc29uIHN0eWxlcy50eXBvZ3JhcGh5XHJcblxyXG4vLyogU1BBQ0lOR1MgKi8vXHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDI2OyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kc3BhY2luZzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbiRtYXJnaW4tbW9iaWxlOiAzMDsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJG1hcmdpbjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogdmFyKC0td3AtLWN1c3RvbS0tbWVkaWEtc3BhY2luZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5tZWRpYVNwYWNpbmc7IC8vcHhcclxuXHJcbi8vKiBDT0xPUlMgKi8vXHJcblxyXG4vLyBCYXNlIENvbG9yc1xyXG4kY29sb3ItLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1kYXJrKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpZ2h0KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE1haW4gQ29sb3JzXHJcbiRjb2xvci0tcHJpbWFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXByaW1hcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWdyYXktMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyYXktMSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE90aGVyIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS01OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBFbGVtZW50cyBDb2xvcnNcclxuJGNvbG9yLS1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJnKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ib2R5OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWJvcmRlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8gVGhlbWUgVGV4dCBDb2xvcnNcclxuJGNvbG9yLS10ZXh0OiAkY29sb3ItLWRhcms7XHJcbiRjb2xvci0tdGV4dC1saWdodDogJGNvbG9yLS1saWdodDtcclxuJGNvbG9yLS1saW5rOiAkY29sb3ItLXByaW1hcnk7XHJcbiRjb2xvci0tbGluay1ob3ZlcjogJGNvbG9yLS1kYXJrO1xyXG5cclxuLy8qIE9USEVSICovL1xyXG5cclxuLy8gVHJhbnNpdGlvbnNcclxuJHRyYW5zLXNwZWVkOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkKTtcclxuJHRyYW5zLXNwZWVkLWxvbmdlcjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1sb25nZXIpO1xyXG4kdHJhbnMtc3BlZWQtYW5pbWF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb24tcGF0dGVybjogdmFyKC0tdHJhbnNpdGlvbi1zcGVlZC1hbmltYXRpb24tcGF0dGVybik7XHJcbiR0cmFucy1mdW5jOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XHJcblxyXG4vLyBPdXRsaW5lXHJcbiRvdXRsaW5lOiAycHggc29saWQgYmx1ZTsiLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuIl19 *\/\n<\/style>\t<div class=\"container\">\r\n\t\t<div class=\"cta-info__inner cta-info__inner--gap-110 cta-info__inner--image-side-right\">\r\n\t\t\t\t\t\t<div class=\"cta-info__image cta-info__image--width-460 cta-info__image--height-460 cta-info__image--rounded-no bounce bounce-right\">\r\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"420\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-420x420.png\" class=\"attachment-cta-info-img size-cta-info-img\" alt=\"K-Bro Linen Inc logo\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-420x420.png 420w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-150x150.png 150w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-300x300.png 300w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-380x380.png 380w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-45x45.png 45w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-315x315.png 315w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-396x396.png 396w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-256x256.png 256w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info-265x265.png 265w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/01\/company-cta-info.png 690w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"cta-info__content cta-info__content--image-side-right bounce bounce-left\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<h2 class=\"wp-block-heading has-secondary-color has-text-color has-link-color wp-elements-81be4ea4b89abda428e48dd64e07d84e\">governance documents<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Audit Committee Charter <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2025\/01\/K-Bro-Linen-Inc.-Audit-Committee-Charter-2024.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Compensation &amp; Governance Committee Charter <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/03\/K-Bro-Linen-Inc-Charter-of-the-Compensation-Nominating-and-Corporate-Governance-Committee.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Board of Directors Mandate <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2025\/01\/K-Bro-Linen-Inc.-Mandate-of-Board-of-Directors-2024.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Code of Business Conduct and Ethics <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/K-Bro-Code-of-Conduct-2026.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Insider Trading Policy <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/03\/K-Bro-Linen-Inc-Insider-Trading-Policy.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Whistleblower Policy <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/03\/K-Bro-Linen-Whistleblower-Policy-12-Nov-25.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Majority Voting Policy <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/03\/K-Bro-Linen-Inc-Majority-Voting-Policy-January-2013.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Chairman of the Board Position Description <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/03\/K-Bro-Linen-Inc-Chair-of-the-Board-Position-Description.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Bylaws <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2024\/03\/K-Bro-Linen-Bylaws.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><br>Articles of Incorporation <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2025\/11\/K-Bro-Linen-Inc.-Articles-Incorporation-and-Amendment.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><\/strong><br><strong>Modern Slavery Act Report <a href=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2026\/05\/K-Bro-Linen-Modern-Slavery-Act-Report-19-May-26.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">(PDF)<\/a><\/strong><\/p>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"info has-text-align-left info--chart info--chart-line\" data-gradient=\"yes\" data-gradient-location=\"bottom\">\r\n\t\t<div class=\"container\">\r\n\t\t<div class=\"info__inner info__inner--gap-72 info__inner--image-side-left info__inner--content-alignment-center\">\r\n\t\t\t<div class=\"info__content bounce bounce-right\">\r\n\t\t\t\t<div class=\"acf-innerblocks-container\">\n\n<div style=\"height:104px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center is-style-base-narrow-font\">Strategic Growth. Dependable Income.<\/h2>\n\n\n\n<p class=\"is-style-leadparagraph has-secondary-color has-text-color has-link-color wp-elements-7248d6077b482c7e2518c1413c97ab6f wp-block-paragraph\">K-Bro Linen Inc. (TSX-KBL) is the market leader in healthcare and hospitality laundry and linen services in Canada, Scotland and the North of England.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have a disciplined proven growth strategy that focuses on customers, operations, sustainability, and profitability. Our team is focused on creating long-term value supported by strategic growth and dependable income.<\/p>\n\n\n\n<div class=\"wp-block-button is-style-arrow-right\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https:\/\/ir.k-brolinen.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">INVESTOR RELATIONS<\/a><\/div>\n\n<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"info__image__wrapper info__image__wrapper--hide-no\">\r\n\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"info__image__gradient info__image__gradient--bottom info__image__gradient--bottom-line\" width=\"1011\" height=\"568\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/themes\/kbro\/assets\/images\/info-gradient-bottom-line.png\" alt=\"\" \/>\r\n\t\t\t\t\t\t\t\t<div class=\"info__image info__image--width-568 info__image--height-952 info__image--gradient-yes bounce bounce-left\">\r\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"952\" src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-568x952.jpg\" class=\"attachment-info-img size-info-img\" alt=\"Two K-Bro employees operating the commercial folding machine\" srcset=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-568x952.jpg 568w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-179x300.jpg 179w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-768x1286.jpg 768w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-227x380.jpg 227w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-27x45.jpg 27w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-483x809.jpg 483w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-251x420.jpg 251w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-441x739.jpg 441w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-188x315.jpg 188w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-496x830.jpg 496w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-237x396.jpg 237w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-153x256.jpg 153w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info-210x352.jpg 210w, https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/company-info.jpg 853w\" sizes=\"auto, (max-width: 568px) 100vw, 568px\" \/>\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"counter has-text-align-left\">\r\n\t<div class=\"counter__pattern\">\r\n\t\t<svg width=\"172\" height=\"986\" viewBox=\"0 0 172 986\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<g clip-path=\"url(#clip0_3_632)\">\r\n<path d=\"M85.8876 985.425C38.6719 985.425 0 946.666 0 899.344V86.081C0 38.759 38.6719 0 85.8876 0C133.103 0 171.775 38.759 171.775 86.081V899.119C172 946.666 133.328 985.425 85.8876 985.425ZM85.8876 10.1404C44.068 10.1404 10.1176 44.1672 10.1176 86.081V899.119C10.1176 941.033 44.068 975.059 85.8876 975.059C127.707 975.059 161.882 941.258 161.882 899.344V86.081C161.882 44.1672 127.707 10.1404 85.8876 10.1404Z\" fill=\"url(#paint0_linear_3_632)\"\/>\r\n<path d=\"M85.8876 944.413C60.7059 944.413 40.2458 923.906 40.2458 898.668V86.5317C40.2458 61.2933 60.7059 40.7871 85.8876 40.7871C111.069 40.7871 131.529 61.2933 131.529 86.5317V898.668C131.529 923.906 111.069 944.413 85.8876 944.413ZM85.8876 51.1529C66.3268 51.1529 50.3634 67.1522 50.3634 86.7571V898.893C50.3634 918.498 66.3268 934.498 85.8876 934.498C105.448 934.498 121.412 918.498 121.412 898.893V86.5317C121.412 66.9269 105.448 51.1529 85.8876 51.1529Z\" fill=\"url(#paint1_linear_3_632)\"\/>\r\n<path d=\"M85.8876 965.144C49.464 965.144 20.0105 935.399 20.0105 899.119V86.3063C20.0105 50.026 49.6889 20.2808 85.8876 20.2808C122.086 20.2808 151.765 50.026 151.765 86.3063V899.119C151.99 935.399 122.311 965.144 85.8876 965.144ZM85.8876 30.4212C55.085 30.4212 30.1281 55.4343 30.1281 86.3063V899.119C30.1281 929.991 55.085 955.004 85.8876 955.004C116.69 955.004 141.647 929.991 141.647 899.119V86.3063C141.872 55.6596 116.69 30.4212 85.8876 30.4212Z\" fill=\"url(#paint2_linear_3_632)\"\/>\r\n<path d=\"M85.8876 924.583C71.9477 924.583 60.7059 913.315 60.7059 899.344V86.3065C60.7059 72.3353 71.9477 60.8428 85.8876 60.8428C99.8275 60.8428 111.069 72.1099 111.069 86.0812V899.119C111.294 913.09 99.8275 924.583 85.8876 924.583ZM85.8876 70.9832C77.5686 70.9832 70.8235 77.7435 70.8235 86.0812V899.119C70.8235 907.457 77.5686 914.217 85.8876 914.217C94.2065 914.217 100.952 907.457 100.952 899.119V86.3065C101.176 77.9688 94.4314 70.9832 85.8876 70.9832Z\" fill=\"url(#paint3_linear_3_632)\"\/>\r\n<\/g>\r\n<defs>\r\n<linearGradient id=\"paint0_linear_3_632\" x1=\"85.8881\" y1=\"0\" x2=\"85.8881\" y2=\"985.425\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint1_linear_3_632\" x1=\"85.8876\" y1=\"40.7871\" x2=\"85.8876\" y2=\"944.413\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint2_linear_3_632\" x1=\"85.8882\" y1=\"20.2808\" x2=\"85.8882\" y2=\"965.144\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<linearGradient id=\"paint3_linear_3_632\" x1=\"85.8892\" y1=\"60.8428\" x2=\"85.8892\" y2=\"924.583\" gradientUnits=\"userSpaceOnUse\">\r\n<stop offset=\"0.161458\" stop-color=\"#823F7C\"\/>\r\n<stop offset=\"0.729167\" stop-color=\"#3ED0FF\"\/>\r\n<stop offset=\"0.901042\" stop-color=\"#3ED0FF\"\/>\r\n<\/linearGradient>\r\n<clipPath id=\"clip0_3_632\">\r\n<rect width=\"172\" height=\"985.425\" fill=\"white\"\/>\r\n<\/clipPath>\r\n<\/defs>\r\n<\/svg>\t<\/div>\r\n\t<style>.counter {\n  position: relative;\n  color: var(--wp--preset--color--light);\n  margin: 5rem 0 0 0;\n}\n@media (min-width: 768px) {\n  .counter {\n    margin: 7.4375rem 0 0 0;\n  }\n}\n@media (min-width: 992px) {\n  .counter {\n    margin: 12.875rem 0 0 0;\n  }\n}\n.counter .counter__pattern {\n  position: absolute;\n  right: -5.375rem;\n  top: 14.875rem;\n  width: 10.75rem;\n  height: 61.5625rem;\n  display: none;\n}\n@media (min-width: 768px) {\n  .counter .counter__pattern {\n    display: block;\n  }\n}\n@media (min-width: 1200px) {\n  .counter .counter__pattern {\n    right: 4.375rem;\n    top: -9.125rem;\n  }\n}\n@media (min-width: 1440px) {\n  .counter .counter__pattern {\n    right: calc((100vw - 90rem) \/ 2 + 4.375rem);\n  }\n}\n.counter .counter__content {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 100%;\n}\n.counter .counter__video {\n  width: 100%;\n  height: 18.5625rem;\n}\n@media (min-width: 768px) {\n  .counter .counter__video {\n    height: 23rem;\n  }\n}\n@media (min-width: 992px) {\n  .counter .counter__video {\n    height: 29rem;\n  }\n}\n.counter .counter__video video {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.counter .counter__text {\n  margin-bottom: 0.625rem;\n}\n@media (min-width: 768px) {\n  .counter .counter__text {\n    margin-bottom: 0rem;\n  }\n}\n.counter .counter__text p {\n  font-size: 1.5rem;\n  line-height: 1.1666666667;\n  font-weight: 700;\n}\n@media (min-width: 768px) {\n  .counter .counter__text p {\n    font-size: 1.75rem;\n    line-height: 1.0714285714;\n  }\n}\n.counter .counter__title {\n  display: flex;\n  justify-content: center;\n  gap: 1.6875rem;\n  font-size: 1.875rem;\n  line-height: 1.3333333333;\n  letter-spacing: 0.4375rem;\n  font-weight: 600;\n  font-family: \"din-2014-narrow\", sans-serif;\n  text-transform: uppercase;\n  margin-bottom: 0rem;\n}\n@media (min-width: 768px) {\n  .counter .counter__title {\n    gap: 2.5rem;\n    font-size: 4.5rem;\n    line-height: 1.3888888889;\n    letter-spacing: 0.99rem;\n  }\n}\n.counter .counter__number {\n  display: inline-block;\n  text-align: right;\n  width: 3.4375rem;\n  margin-right: -0.4375rem;\n}\n@media (min-width: 768px) {\n  .counter .counter__number {\n    width: 9.375rem;\n    margin-right: -0.99rem;\n  }\n}\n.counter .counter__number-text {\n  white-space: nowrap;\n  margin-right: -0.4375rem;\n}\n@media (min-width: 768px) {\n  .counter .counter__number-text {\n    margin-right: -0.99rem;\n  }\n}\n\n.cta-info + .counter {\n  margin-top: 4.9375rem;\n}\n@media (min-width: 768px) {\n  .cta-info + .counter {\n    margin-top: 7.4375rem;\n  }\n}\n@media (min-width: 992px) {\n  .cta-info + .counter {\n    margin-top: 17.75rem;\n  }\n}\n\n@media (min-width: 992px) {\n  .cta-info[data-background=white] + .counter {\n    margin-top: 12.9375rem;\n  }\n}\n\n@media (max-width: 767px) {\n  .cta + .counter {\n    margin: -1.25rem 0 0 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-media + .counter {\n    margin-top: 14.625rem;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ticm8vcGFydHMvZ3V0ZW5iZXJnL2FjZi1jb3VudGVyL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9rYnJvL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2ViL2FwcC90aGVtZXMva2Jyby9hc3NldHMvY3NzL19fc2V0dGluZ3MvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBR0M7RUFFQSxPQzZCYztFRDNCZDs7QUVzaUJDO0VGN2lCRjtJQVVFOzs7QUVtaUJBO0VGN2lCRjtJQWNFOzs7QUFJQTtFQUNDO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTs7QUVtaEJEO0VGM2hCQTtJQVdFOzs7QUVnaEJGO0VGM2hCQTtJQWVFO0lBQ0E7OztBRTJnQkY7RUYzaEJBO0lBb0JFOzs7QUFJRjtFQUNDO0VBQ0E7RUFFQTtFQUVBOztBQUdEO0VBQ0M7RUFDQTs7QUV3ZkQ7RUYxZkE7SUFLRTs7O0FFcWZGO0VGMWZBO0lBU0U7OztBQUdEO0VBQ0M7RUFDQTtFQUVBOztBQUlGO0VBQ0M7O0FFcWVEO0VGdGVBO0lBSUU7OztBQUdEO0VHRUQ7RUFqQ0M7RUhpQ0M7O0FFNmRGO0VGL2RDO0lHRUQ7SUFqQ0M7OztBSHlDRDtFQUNDO0VBQ0E7RUFDQTtFR1hEO0VBakNDO0VIK0NBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FFMGNEO0VGcmRBO0lBY0U7SUd0QkY7SUFqQ0M7SUgwREM7OztBQUlGO0VBQ0M7RUFFQTtFQUVBO0VBQ0E7O0FFMGJEO0VGaGNBO0lBU0U7SUFDQTs7O0FBR0Q7RUFDQztFQUVBOztBRWdiRjtFRm5iQztJQU1FOzs7O0FBT0w7RUFDQzs7QUVxYUM7RUZ0YUY7SUFJRTs7O0FFa2FBO0VGdGFGO0lBUUU7Ozs7QUU4WkE7RUYxWkY7SUFFRTs7OztBRXdaQTtFRnBaRjtJQUVFOzs7O0FFa1pBO0VGN1lGO0lBRUUiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMva2Jyby9wYXJ0cy9ndXRlbmJlcmcvYWNmLWNvdW50ZXIvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnX19zZXR0aW5ncy9pbml0JztcclxuXHJcbi5jb3VudGVyIHtcclxuICAgICRibG9jazogJjtcclxuXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRjb2xvcjogJGNvbG9yLS1saWdodDtcclxuXHJcblx0bWFyZ2luOiByZW0oODApIDAgMCAwO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdG1hcmdpbjogcmVtKDExOSkgMCAwIDA7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdG1hcmdpbjogcmVtKDIwNikgMCAwIDA7XHJcblx0fVxyXG5cclxuXHQjeyRibG9ja30ge1xyXG5cdFx0Jl9fcGF0dGVybiB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IHJlbSgtODYpO1xyXG5cdFx0XHR0b3A6IHJlbSgyMzgpO1xyXG5cclxuXHRcdFx0d2lkdGg6IHJlbSgxNzIpO1xyXG5cdFx0XHRoZWlnaHQ6IHJlbSg5ODUpO1xyXG5cclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRyaWdodDogcmVtKDcwKTtcclxuXHRcdFx0XHR0b3A6IHJlbSgtMTQ2KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRcdHJpZ2h0OiBjYWxjKCgoMTAwdncgLSA5MHJlbSkgLyAyKSArIDQuMzc1cmVtKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2NvbnRlbnQge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogNTAlO1xyXG5cclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fdmlkZW8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oMjk3KTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDM2OCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDQ2NCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHZpZGVvIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdFx0XHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fdGV4dCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHAge1xyXG5cdFx0XHRcdEBpbmNsdWRlIGZvbnQoMjQsIDI4KTtcclxuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMjgsIDMwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX190aXRsZSB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRnYXA6IHJlbSgyNyk7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDMwLCA0MCk7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oNyk7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlLW5hcnJvdywgc2Fucy1zZXJpZjtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgwKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdGdhcDogcmVtKDQwKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udCg3MiwgMTAwKTtcclxuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKDE1Ljg0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX251bWJlciB7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuXHRcdFx0d2lkdGg6IHJlbSg1NSk7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogcmVtKC03KTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oMTUwKTtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbSgtMTUuODQpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLXRleHQge1xyXG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtKC03KTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbSgtMTUuODQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmN0YS1pbmZvICsgLmNvdW50ZXIge1xyXG5cdG1hcmdpbi10b3A6IHJlbSg3OSk7XHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDExOSk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSgyODQpO1xyXG5cdH1cclxufVxyXG5cclxuLmN0YS1pbmZvW2RhdGEtYmFja2dyb3VuZD1cIndoaXRlXCJdICsgLmNvdW50ZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDIwNyk7XHJcblx0fVxyXG59XHJcblxyXG4uY3RhICsgLmNvdW50ZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc8PTc2N3B4Jykge1xyXG5cdFx0bWFyZ2luOiByZW0oLTIwKSAwIDAgMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4udGV4dC1tZWRpYSArIC5jb3VudGVyIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSgyMzQpO1xyXG5cdH1cclxufVxyXG4iLCIvLyogQlJFQUtQT0lOVFMgKi8vXHJcbiRicmVha3BvaW50czogKHhzOiAzNzVweCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDQwcHgsIG1heDogMTkyMHB4KTtcclxuXHJcbi8vKiBDT05UQUlORVIgd2lkdGggdmFyaWFibGVzICovL1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMDgwcHg7XHJcbiRjb250YWluZXIteHhsOiB2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplKTsgLy8gdGhlbWUuanNvbiBzZXR0aW5ncy5sYXlvdXRcclxuJGNvbnRhaW5lci1wYWRkaW5nOiA3MDsgLy90aGVtZS5qc29uIHNldHRpbmcuY3VzdG9tLmJhc2VQYWRkaW5nXHJcblxyXG4vLyogRk9OVFMgKi8vXHJcbiRmb250LWJhc2U6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtZmFtaWx5LS1iYXNlLWZvbnQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRGYW1pbGllc1xyXG4kZm9udC1iYXNlLW5hcnJvdzogJ2Rpbi0yMDE0LW5hcnJvdyc7XHJcbiRmb250LXRpdGxlOiAnbWluZXJ2YS1tb2Rlcm4nO1xyXG5cclxuJGZvbnQtc2l6ZS1kZXNrdG9wOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLW1lZGl1bSk7Ly90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250U2l6ZXNcclxuJGxpbmUtaGVpZ2h0LWRlc2t0b3A6IDEuNTtcclxuXHJcbi8vIFNldCBNb2JpbGUgZm9udC1zaXplIC8gbGluZS1oZWlnaHQgc3R5bGVzIGluIHRoZW1lLmpzb24gc3R5bGVzLnR5cG9ncmFwaHlcclxuXHJcbi8vKiBTUEFDSU5HUyAqLy9cclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogMjY7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnNwYWNpbmcuc3BhY2luZ1NpemVzXHJcbiRzcGFjaW5nOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1tZWRpdW0pO1xyXG5cclxuJG1hcmdpbi1tb2JpbGU6IDMwOyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kbWFyZ2luOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1tZWRpdW0pO1xyXG5cclxuLy8gTWVkaWEgU3BhY2luZ1xyXG4kbWVkaWEtbWFyZ2luOiB2YXIoLS13cC0tY3VzdG9tLS1tZWRpYS1zcGFjaW5nKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY3VzdG9tLm1lZGlhU3BhY2luZzsgLy9weFxyXG5cclxuLy8qIENPTE9SUyAqLy9cclxuXHJcbi8vIEJhc2UgQ29sb3JzXHJcbiRjb2xvci0tZGFyazogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWRhcmspOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWxpZ2h0OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tbGlnaHQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gTWFpbiBDb2xvcnNcclxuJGNvbG9yLS1wcmltYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tcHJpbWFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tc2Vjb25kYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2Vjb25kYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tZ3JheS0xOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheS0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1ncmF5LTI6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmF5LTIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gT3RoZXIgQ29sb3JzXHJcbiRjb2xvci0tMTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTEpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTI6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0yKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0zOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tNDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTU6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci01KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIEVsZW1lbnRzIENvbG9yc1xyXG4kY29sb3ItLWJnOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWJvZHk6ICRjb2xvci0tbGlnaHQ7XHJcbiRjb2xvci0tYm9yZGVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyBUaGVtZSBUZXh0IENvbG9yc1xyXG4kY29sb3ItLXRleHQ6ICRjb2xvci0tZGFyaztcclxuJGNvbG9yLS10ZXh0LWxpZ2h0OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWxpbms6ICRjb2xvci0tcHJpbWFyeTtcclxuJGNvbG9yLS1saW5rLWhvdmVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyogT1RIRVIgKi8vXHJcblxyXG4vLyBUcmFuc2l0aW9uc1xyXG4kdHJhbnMtc3BlZWQ6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQpO1xyXG4kdHJhbnMtc3BlZWQtbG9uZ2VyOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWxvbmdlcik7XHJcbiR0cmFucy1zcGVlZC1hbmltYXRpb246IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtYW5pbWF0aW9uKTtcclxuJHRyYW5zLXNwZWVkLWFuaW1hdGlvbi1wYXR0ZXJuOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWFuaW1hdGlvbi1wYXR0ZXJuKTtcclxuJHRyYW5zLWZ1bmM6IHZhcigtLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcclxuXHJcbi8vIE91dGxpbmVcclxuJG91dGxpbmU6IDJweCBzb2xpZCBibHVlOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcbiJdfQ== *\/\n<\/style>\t\t<div class=\"counter__video\">\r\n\t\t<video autoplay loop muted playsinline poster=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/counter-placeholder.png\">\r\n\t\t\t<source src=\"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/K-Bro-FooterKilos-Nov2022.mp4\" type=\"video\/mp4\" \/>\r\n\t\t<\/video>\r\n\t<\/div>\r\n\t\t<div class=\"counter__content\">\r\n\t\t<div class=\"container\">\r\n\t\t\t\t\t\t<div class=\"counter__text counter__text--top title-font bounce bounce-up\">\r\n\t\t\t\t<p style=\"text-align: center;\">For over 7 decades<br \/>\nK\u2011Bro processes &amp; delivers laundry<\/p>\n\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t<h2 class=\"counter__title bounce bounce-up\">\r\n\t\t\t\t\t\t\t\t<span class=\"counter__number text-font--narrow\">365<\/span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"counter__number-text text-font--narrow\"> days a year<\/span>\r\n\t\t\t\t\t\t\t<\/h2>\r\n\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-92","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>About K-Bro Linen | Strategic Growth &amp; Dependable Service<\/title>\n<meta name=\"description\" content=\"Learn how K-Bro Linen leads healthcare and hospitality laundry in Canada and the UK with disciplined growth, operational excellence, and ESG commitments.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.k-brolinen.com\/fr\/company\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"About K-Bro Linen | Strategic Growth &amp; Dependable Service\" \/>\n<meta property=\"og:description\" content=\"Learn how K-Bro Linen leads healthcare and hospitality laundry in Canada and the UK with disciplined growth, operational excellence, and ESG commitments.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.k-brolinen.com\/fr\/company\/\" \/>\n<meta property=\"og:site_name\" content=\"K-Bro\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-21T01:48:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/\",\"url\":\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/\",\"name\":\"About K-Bro Linen | Strategic Growth & Dependable Service\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.k-brolinen.com\\\/\\\/app\\\/uploads\\\/2023\\\/12\\\/company-two-images-1-1024x711.jpg\",\"datePublished\":\"2023-12-07T11:04:54+00:00\",\"dateModified\":\"2026-05-21T01:48:00+00:00\",\"description\":\"Learn how K-Bro Linen leads healthcare and hospitality laundry in Canada and the UK with disciplined growth, operational excellence, and ESG commitments.\",\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/company\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.k-brolinen.com\\\/\\\/app\\\/uploads\\\/2023\\\/12\\\/company-two-images-1-1024x711.jpg\",\"contentUrl\":\"https:\\\/\\\/www.k-brolinen.com\\\/\\\/app\\\/uploads\\\/2023\\\/12\\\/company-two-images-1-1024x711.jpg\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#website\",\"url\":\"https:\\\/\\\/www.k-brolinen.com\\\/\",\"name\":\"K-Bro\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.k-brolinen.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#organization\",\"name\":\"K-Bro Linen\",\"url\":\"https:\\\/\\\/www.k-brolinen.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.k-brolinen.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/K-Bro-Logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.k-brolinen.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/K-Bro-Logo.svg\",\"width\":144,\"height\":48,\"caption\":\"K-Bro Linen\"},\"image\":{\"@id\":\"https:\\\/\\\/www.k-brolinen.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/k-bro-linen-systems-inc\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A propos de K-Bro Linen | Croissance strat\u00e9gique et service fiable","description":"D\u00e9couvrez comment K-Bro Linen m\u00e8ne les blanchisseries des secteurs de la sant\u00e9 et de l'h\u00f4tellerie au Canada et au Royaume-Uni gr\u00e2ce \u00e0 une croissance disciplin\u00e9e, \u00e0 l'excellence op\u00e9rationnelle et \u00e0 des engagements ESG.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.k-brolinen.com\/fr\/company\/","og_locale":"fr_CA","og_type":"article","og_title":"About K-Bro Linen | Strategic Growth & Dependable Service","og_description":"Learn how K-Bro Linen leads healthcare and hospitality laundry in Canada and the UK with disciplined growth, operational excellence, and ESG commitments.","og_url":"https:\/\/www.k-brolinen.com\/fr\/company\/","og_site_name":"K-Bro","article_modified_time":"2026-05-21T01:48:00+00:00","og_image":[{"url":"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.k-brolinen.com\/company\/","url":"https:\/\/www.k-brolinen.com\/company\/","name":"A propos de K-Bro Linen | Croissance strat\u00e9gique et service fiable","isPartOf":{"@id":"https:\/\/www.k-brolinen.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.k-brolinen.com\/company\/#primaryimage"},"image":{"@id":"https:\/\/www.k-brolinen.com\/company\/#primaryimage"},"thumbnailUrl":"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg","datePublished":"2023-12-07T11:04:54+00:00","dateModified":"2026-05-21T01:48:00+00:00","description":"D\u00e9couvrez comment K-Bro Linen m\u00e8ne les blanchisseries des secteurs de la sant\u00e9 et de l'h\u00f4tellerie au Canada et au Royaume-Uni gr\u00e2ce \u00e0 une croissance disciplin\u00e9e, \u00e0 l'excellence op\u00e9rationnelle et \u00e0 des engagements ESG.","inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.k-brolinen.com\/company\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/www.k-brolinen.com\/company\/#primaryimage","url":"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg","contentUrl":"https:\/\/www.k-brolinen.com\/\/app\/uploads\/2023\/12\/company-two-images-1-1024x711.jpg"},{"@type":"WebSite","@id":"https:\/\/www.k-brolinen.com\/#website","url":"https:\/\/www.k-brolinen.com\/","name":"K-Bro","description":"","publisher":{"@id":"https:\/\/www.k-brolinen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.k-brolinen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/www.k-brolinen.com\/#organization","name":"K-Bro Linen","url":"https:\/\/www.k-brolinen.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/www.k-brolinen.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/K-Bro-Logo.svg","contentUrl":"https:\/\/www.k-brolinen.com\/wp-content\/uploads\/2023\/12\/K-Bro-Logo.svg","width":144,"height":48,"caption":"K-Bro Linen"},"image":{"@id":"https:\/\/www.k-brolinen.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/k-bro-linen-systems-inc\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/pages\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":0,"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/pages\/92\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.k-brolinen.com\/fr\/wp-json\/wp\/v2\/media?parent=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}